<?php
//======================================================================================
//
// Function: Maintain customer
//
// Programmer: JKJ
// Date : 2025-04-28
//
// Copyright Reeft A/S (c) - 2025
//======================================================================================
// https://easings.net/#
// Notepad++ easteregges => https://community.notepad-plus-plus.org/topic/25803/an-updated-list-of-notepad-easter-eggs
// https://animate.style/
//======================================================================================
// Get input
//======================================================================================
if (isset($_REQUEST["timeStamp"])) {
$timeStamp = $_REQUEST["timeStamp"];
} else {
$timeStamp = '';
}
//======================================================================================
// Set defaults
//======================================================================================
$fromdate = date("Y-m-d",strtotime("-1 month"));
$fromtime = date("H:i");
$todate = date("Y-m-d");
$totime = date("H:i",strtotime("+1 hour"));
//======================================================================================
// Make line uppercase
//======================================================================================
//======================================================================================
// General config
//======================================================================================
include "config/config.php";
//======================================================================================
// Check if user is logged in?
//======================================================================================
include "login_check.php";
//======================================================================================
// Get session variables
//======================================================================================
include "include/getsession.php";
// include "include/uuid_create.php";
// include "include/generate_password_md5.php";
//======================================================================================
// Set language
//======================================================================================
include "include/set_language.php";
//======================================================================================
// Set defaults
//======================================================================================
// $pk_pk_key = $_SESSION['session_dft_pk_pk_key'];
// $pk_keyCode = $_SESSION['session_dft_pk_keycode'];
// $pk_keyName = $_SESSION['session_dft_pk_keyname'];
//======================================================================================
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title><?php echo $reeft_text0001 ?></title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="REEFTvisual - Stoptime">
<meta name="author" content="REEFT A/S">
<link rel="icon" href="images/favicon/favicon.ico">
<!-- Bootstrap / jQuery -->
<link href="css/bootstrap4.3.1/css/bootstrap.custom.min.css" rel="stylesheet">
<link href="css/bootstrap4.3.1/css/themes/bootstrap.custom.min.css" rel="stylesheet">
<link href="css/bootstrap4.3.1/css/normalize.css" rel="stylesheet" type="text/css">
<link href="css/sticky-footer.css" rel="stylesheet" type="text/css">
<!-- Custom styles for this template -->
<link href="css/custom.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<script src="css/fontawesome6.5.1/js/all.min.js"></script>
<script src="css/fontawesome6.5.1/js/sharp-light.min.js"></script>
<script src="css/fontawesome6.5.1/js/sharp-regular.min.js"></script>
<script src="css/fontawesome6.5.1/js/sharp-solid.min.js"></script>
<script src="css/fontawesome6.5.1/js/sharp-thin.min.js"></script>
<link href="css/bootstrap_animation/css/animate4/animate.css" rel="stylesheet" type="text/css">
<!--<link href="javascript/chosen/chosen.css" rel="stylesheet" type="text/css">-->
<link href="javascript/jquery-ui/jquery-ui.min.css" rel="stylesheet" type="text/css"/>
<script src="javascript/jquery.js"></script>
<script src="css/bootstrap4.3.1/js/popper.js"></script>
<script src="css/bootstrap4.3.1/js/bootstrap.min.js"></script>
<script src="javascript/jquery-ui/jquery-ui.min.js"></script>
<script src="javascript/jquery.ui.touch-punch.min.js"></script>
<link href="javascript/bgrins-spectrum/spectrum.css" rel="stylesheet" type="text/css">
<script src="javascript/bgrins-spectrum/spectrum.js"></script>
<script src="javascript/moment.min.js"></script>
<script src="javascript/moment-with-locales.min.js"></script>
<script src="javascript/moment-duration-format.min.js"></script>
<script src="javascript/number_format/jquery.number.min.js"></script>
<script src="javascript/jquery.scrollTo.min.js"></script>
<!-- Data tables start -->
<link href="javascript/datatables.3.12/datatables.min.css" rel="stylesheet">
<script src="javascript/datatables.3.12/datatables.min.js"></script>
<!-- Data tables end -->
<script src="javascript/chosen/chosen.jquery.min.js" type="text/javascript"></script>
<script src="javascript/viewer-master/dist/viewer.min.js"></script>
<link href="javascript/viewer-master/dist/viewer.min.css" rel="stylesheet">
<script src="javascript/ajaxq/ajaxq.js"></script>
<link id="scrollUpTheme" rel="stylesheet" href="javascript/scrollup-master/dist/css/themes/image.css">
<script src="javascript/scrollup-master/dist/jquery.scrollUp.js"></script>
<script src="javascript/shortcut.js"></script>
<script src="javascript/filesaver.js-master/dist/FileSaver.js"></script>
<script src="javascript/_reeft_js/set_font_awesome_icon_type.js"></script>
<script src="javascript/_reeft_js/date_convert.js"></script>
<style>
#REEFTvisual_data_processing {
position: absolute;
top: 15% !important;
background: #ccc;
border: 1px solid black;
border-radius: 3px;
font-weight: bold;
width: 300px;
}
.btn-custom-wide {
height:60px;
width:210px;
}
.modal-work-dir-border {
border-color: #7f8631 !important
}
.extend-search-field {
width:300px !important;
}
.text-truncate-dt {
max-width: 450px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Ensure headers are not truncated */
th.text-truncate-dt {
white-space: normal; /* Allow wrapping in the header */
overflow: visible; /* No truncation for header text */
text-overflow: clip; /* Ensure no ellipsis */
}
.text-align-dt {
text-align: center;
}
.overflow-class {
width: 100%;
/*height:700px;*/
max-height: calc(100vh - 283px);
overflow-y: scroll;
overflow-x: scroll;
}
.overflow-class-modal-body {
width: 99%;
max-height: calc(100vh - 283px);
overflow-y: scroll;
overflow-x: hidden;
}
.text-align-center-dt {
text-align: center;
}
.text-align-left-dt {
text-align: left;
}
.text-align-right-dt {
text-align: right;
}
.modal-xxl {
max-width: 90%;
}
.modal-xl {
max-width: 50%;
}
.border-3 {
border-width:3px !important;
}
td .hover-img {
position:relative;
}
td .hover-img span {
position:absolute; left:-9999px; top:-9999px; z-index:9999;
}
td:hover .hover-img span {
top: 5px;
left:0px;
}
.chosen-container-single {
min-width: 100%;
}
.act-btn {
margin-top: 0rem !important;
}
.table-fixed {
table-layout: fixed;
width: 100%; /* Ensure table fits within its container */
}
</style>
<script language="JavaScript">
//=============================================================================
// Globals
//=============================================================================
var thisCurrentRow;
var thisGlobalRowData;
var thisGlobalTableData;
var REEFT_DEFAULT_INTEGRATON_PRODUCT = '<?php echo $REEFT_DEFAULT_INTEGRATON_PRODUCT ?>';
var REEFT_DEFAULT_INTEGRATON_DESCRIPTION = '<?php echo $REEFT_DEFAULT_INTEGRATON_PRODUCT ?>';
var REEFT_DEFAULT_INTEGRATON_VERSION = '<?php echo $REEFT_DEFAULT_INTEGRATON_VERSION ?>';
var DFT_TINYFILEMANAGER_BASE_LINK = '<?php echo $DFT_TINYFILEMANAGER_BASE_LINK ?>';
// Dir variables
var DFT_DIR_PATH = '<?php echo $DFT_DIR_PATH ?>';
var DFT_PROGRAM_DIR = '<?php echo $DFT_PROGRAM_DIR ?>';
var DFT_INPUT_DIR = '<?php echo $DFT_INPUT_DIR ?>';
var DFT_OUTPUT_DIR = '<?php echo $DFT_OUTPUT_DIR ?>';
var DFT_DONE_DIR = '<?php echo $DFT_DONE_DIR ?>';
var DFT_LOG_DIR = '<?php echo $DFT_LOG_DIR ?>';
var DFT_EXPORT_DONE_DIR = '<?php echo $DFT_EXPORT_DONE_DIR ?>';
var DFT_ERROR_DIR = '<?php echo $DFT_ERROR_DIR ?>';
var DFT_DIR_PATH_LOG_TEMPLATE = '<?php echo $DFT_DIR_PATH_LOG_TEMPLATE ?>';
var DFT_DB_LOG_TEMPLATE = '<?php echo $DFT_DB_LOG_TEMPLATE ?>';
var DFT_DIR_WHERE_TO_SAVE_DB_LOG = '<?php echo $DFT_DIR_WHERE_TO_SAVE_DB_LOG ?>';
// date variables
var input_fromdate;
var input_fromtime;
var input_todate;
var input_totime;
// Save field
var save_dataLine = '';
var save_cust_number = '';
var global_debug = 'N';
var global_GET_POST = 'POST';
// Add allowed Y/N
var GLOBAL_ADD_ALLOWED = 'Y';
// Show group buttons
var GLOBAL_SHOW_GROUP_BUTTONS = 'Y';
// Delete allowed Y/N
var GLOBAL_DELETE_ALLOWED = 'Y';
// sortMode
var GLOBAL_SORTMODE = 'DESC';
var jsonDataSave = {};
var DFT_DATE_DISPLAY_FORMAT = '<?php //echo $DFT_DATE_DISPLAY_FORMAT ?>';
var DFT_LANGUAGE = '<?php //echo $DFT_LANGUAGE ?>';
var GLOBAL_TOTALPAGESSTOPVALUE = 10;
// Save field
//var save_CFGNAM = '';
// http://markgoodyear.com/labs/scrollup/
$(function () {
$.scrollUp({
scrollName: 'scrollUp', // Element ID
//topDistance: '1800', // Distance from top before showing element (px)
//topSpeed: 300, // Speed back to top (ms)
scrollDistance: '300', // Distance from top before showing element (px)
scrollSpeed: 300, // Speed back to top (ms)
animation: 'fade', // Fade, slide, none
animationInSpeed: 200, // Animation in speed (ms)
animationOutSpeed: 200, // Animation out speed (ms)
scrollText: false, //'Scroll to top', // Text for element
activeOverlay: false, // Set CSS color to display scrollUp active point, e.g '#00FFFF'
});
});
// https://animate.style/#javascript
// You can also use a simple function to add the animations classes and remove them automatically:
const animateCSS = (element, animation, prefix = 'animate__') =>
// We create a Promise and return it
new Promise((resolve, reject) => {
const animationName = `${prefix}${animation}`;
const node = document.querySelector(element);
node.classList.add(`${prefix}animated`, animationName);
// When the animation ends, we clean the classes and resolve the Promise
function handleAnimationEnd(event) {
event.stopPropagation();
node.classList.remove(`${prefix}animated`, animationName);
resolve('Animation ended');
doSomeThingAfterAnimationEnds();
}
node.addEventListener('animationend', handleAnimationEnd, {once: true});
});
//=============================================================================
// Get data
//=============================================================================
function getData( inputGetData )
{
// Reset, show all
if ( inputGetData == '*RESET' ) {
inputGetData = '';
$('#input-fromdate').val('');
$('#input-fromtime').val('');
$('#input-todate').val('');
$('#input-totime').val('');
// Update input variables
input_fromdate = $('#input-fromdate').val();
input_fromtime = $('#input-fromtime').val();
input_todate = $('#input-todate').val();
input_totime = $('#input-totime').val();
// Reset date buttons
$('.btn-default-date-interval').removeClass('btn-success').addClass('btn-dark');
//Clear search
thisGlobalTableData.search( '' );
}
//Only initialize datatables once, else just draw it
if ( $.fn.dataTable.isDataTable( '#REEFTvisual_data' ) ) {
console.log('1');
thisGlobalTableData.draw(); // fire in the hole
}
else {
console.log('2');
setDataTables();
}
}
//=============================================================================
// Set datatables
//=============================================================================
function setDataTables()
{
// Delete allowed?
if ( GLOBAL_DELETE_ALLOWED == 'Y' ) {
var show_the_delete_button = true;
} else {
var show_the_delete_button = false;
}
// Get the current date line
input_fromdate = $('#input-fromdate').val();
input_fromtime = $('#input-fromtime').val();
input_todate = $('#input-todate').val();
input_totime = $('#input-totime').val();
input_logType = $('#input-logType').val();
input_logCode = $('#input-logCode').val();
input_logPgm = $('#input-logPgm').val();
input_clientID = $('#input-clientID').val();
input_dataLine = $('#input-dataLine').val();
input_group_search = $('#input-default-search-group').val();
input_active_search = $('#input-default-search-active').val();
parmData = '';
// Get the current date line
input_logCode = $('#input-logCode').val();
new $('#REEFTvisual_data').DataTable({
"ajax": {
"url": 'customer_maintain_get.php',
"type": global_GET_POST,
"data": function (parmData) {
// Add custom parameters to the ajax call
parmData.logCode = input_logCode;
// From date
parmData.fromdate = input_fromdate.trim();
parmData.fromtime = input_fromtime;
parmData.fromtime = input_fromtime;
// To date
parmData.todate = input_todate.trim();
parmData.totime = input_totime;
// Log type and code
parmData.logType = input_logType;
parmData.logCode = input_logCode;
parmData.logPgm = input_logPgm;
parmData.clientID = input_clientID;
parmData.dataLine = input_dataLine;
parmData.group_search = input_group_search;
parmData.active_search = input_active_search;
},
dataSrc: function (jsonData) { //return data
// var rpyCMPNO = jsonData.header.rpyCMPNO;
// var rpyCMPNO_Name = jsonData.header.rpyCMPNO_Name;
// var rpyFile_name = jsonData.header.rpyFile_name;
// var rpyFile_description = jsonData.header.rpyFile_description;
// var recordsTotal = jsonData.header.recordsTotal;
// var rpyTableRecordsFound = jsonData.header.rpyTableRecordsFound;
// var recordsTotal = jsonData.header.recordsTotal;
// var recordsTotalFormat = jsonData.header.recordsTotalFormat;
// var returnCode = jsonData.header.returnCode;
// var returnMsg = jsonData.header.returnMsg;
// var entries_found = jsonData.header.entries_found;
// var response_sec = jsonData.header.response_sec;
// sql_where = jsonData.header.sql_where ;
// sql = jsonData.header.sql ;
var rpyCMPNO = '';
var rpyCMPNO_Name = '';
var rpyFile_name = '';
var rpyFile_description = '';
var rpyTableRecordsFound = 0;
var recordsTotal = jsonData.recordsTotal;
var recordsTotalFormat = jsonData.recordsTotal;
var returnCode = jsonData.header.returnCode;
var returnMsg = jsonData.header.returnMsg;
var entries_found = jsonData.recordsTotal;
var response_sec = jsonData.header.execution_time_sec;
sql_where = '';
sql = '';
// Show SQL?
if ( $('#input-show-sql').val() == 'Y' ) {
$('#input-sql').text( sql );
}
// Show load time
$('#text-total-records-found').html( rpyTableRecordsFound );
$('#text-total-records-found').html( recordsTotalFormat );
$('#load-time-from-database').html('<?php echo $reeft_text0055 ?>: ' + entries_found + ' (' + response_sec + ')');
// Set Company and file information
if ( rpyFile_name != '' ) {
$('#data-company-information').html( '<span title="' + rpyFile_name + ' - ' + rpyFile_description + '">' + rpyCMPNO_Name + '</span>' ).css('font-size','1.3em');
}
// Init button line fields
var HTMLlineButtons = '';
var HTMLlineButtonsModal = '';
var selectedButtonClass = 'btn-dark';
//=====================================================================================
// Create group buttons, only if wanted
//=====================================================================================
if ( GLOBAL_SHOW_GROUP_BUTTONS == 'Y' ) {
$.each( jsonData.data_group, function( index, object ){
var buttonLine = object.cust_group;
var buttonCount = object.cust_group_count;
selectedButtonClass = 'btn-dark';
var selectButtonLineID = 'select-button-line-id-' + buttonLine;
var selectButtonLineIDmodal = 'select-button-line-id-modal-' + buttonLine;
HTMLlineButtons += '<button type="button" onclick="doGroupSearch(\'' + buttonLine + '\')" style="cursor:default" id="' + selectButtonLineID + '" class="btn ' + selectedButtonClass + ' select-button-line btn-sm mr-1 mb-1">'
+ buttonLine + ' (<b>' + buttonCount + '</b>)'
+ '</button>'
HTMLlineButtonsModal += '<button type="button" onclick="selectGroupValueModal(\'' + buttonLine + '\')" style="width:100px" id="' + selectButtonLineIDmodal + '" class="select-button-line-modal btn btn-primary btn-sm mr-1 mb-1">'
+ buttonLine
+ '</button>'
});
// Reset
HTMLlineButtons += '<button type="button" onclick="doGroupSearch(\'' + '' + '\')" style="cursor:default" id="' + 'RESET' + '" class="btn ' + 'btn-warning' + ' select-button-line btn-sm mr-1 mb-1">'
+ '<b>' + 'RESET' + '</b>'
+ '</button>'
$('#data-result-button-group').html(HTMLlineButtons);
$('#data-result-button-group-modal').html(HTMLlineButtonsModal);
// Get group
search_group = $('#input-default-search-group').val();
if ( search_group != '' ) {
$('#select-button-line-id-' + search_group).removeClass('btn-dark').addClass('btn-success');
}
}
//=====================================================================================
//=====================================================================================
// Active - set buttons
//=====================================================================================
if ( input_active_search == '' ) {
input_active_search_id = 'X';
} else {
input_active_search_id = input_active_search;
}
// Remove all green
$('.active-search-button-class' ).removeClass('btn-success').addClass('btn-dark');
$('#button-select-cust-active-' + input_active_search_id ).removeClass('btn-dark').addClass('btn-success');
//$('#dt-search-0').removeClass('extend-search-field');
//=====================================================================================
return jsonData.data;
}
},
searching: true,
processing: true,
serverSide: true,
responsive: {
details: {
renderer: function (api, rowIdx, columns) {
// Create a debug report for the current row
var debugInfo = '<table class="table table-sm">';
debugInfo += '<thead><tr><th>Column</th><th>Visible</th><th>Data</th></tr></thead><tbody>';
// Iterate over each column to provide visibility info
$.each(columns, function (i, col) {
debugInfo += `<tr>
<td>${col.title}</td>
<td>${col.hidden ? 'Hidden' : 'Visible'}</td>
<td>${col.data}</td>
</tr>`;
});
debugInfo += '</tbody></table>';
return debugInfo;
}
}
},
fixedHeader: true,
order: [[ 4, "asc" ],[ 2, "asc" ]],
// Control the order on the screen
colReorder:
{
order: [4, 2, 3, 0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 40, 42]
},
columnDefs: [
// Make sure the sorts toggle asc/desc and not asc/desc/no-sort
{
orderSequence: ['asc', 'desc'], targets: ['_all']
},
{
"targets": [ 40 ],
"visible": show_the_delete_button,
"searchable": false,
"orderable": false
},
{
"targets": [ 39,40,41,42 ],
"visible": true,
"searchable": false,
"orderable": false
},
{
"targets": [ 0, 5, 6, 7, 9, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37 ,38 ],
"visible": false,
"searchable": false,
"orderable": false
},
{
"targets": [ 3,5 ],
"max-width": '120px',
"className": "text-truncate-dt" //class to mimic text-truncate in dt
},
{
"targets": [ 1,4,7,8,9,10,11 ],
"className": "text-align-dt"
}
],
columns:
[
{ data: "pk_customer" }, // 0
{ data: "cust_active", // 1
render: function (data, type, row, meta)
{
if ( row.cust_active == 1 ) {
cust_active_text = '<span style="width:80px" class="badge badge-success font-weight-bold p-2"><?php echo $reeft_text0006 ?></span>';
}
if ( row.cust_active == 0 ) {
cust_active_text = '<span style="width:80px" class="badge badge-danger font-weight-bold p-2"><?php echo $reeft_text0007 ?></span>';
}
return cust_active_text;
}
},
{ data: "cust_number", // 2
render: function (data, type, row, meta)
{
var cust_number_text = '<span onclick="copyToClipBoard(\'' + row.pk_customer + '\')" title="Click to copy pk_customer: ' + row.pk_customer + ' to clipboard">' + row.cust_number + '</span>';
return cust_number_text;
}
},
{ data: "cust_name" }, // 3
{ data: "cust_group" }, // 4
{ data: "product" }, // 5
{ data: "description" }, // 6
{ data: "integration_version" }, // 7
{ data: "fileformat_ext_file" }, // 8
{ data: "fileformat_exportterminationfile" }, // 9
{ data: "fileformat_numberdecimalseparator", // 10
render: function (data, type, row, meta)
{
var text_text = '<span class="font-weight-bold" style="font-size:1.2em">' + row.fileformat_numberdecimalseparator + '</span>';
return text_text;
}
},
{ data: "fileformat_separator", // 11
render: function (data, type, row, meta)
{
var text_text = '<span style="font-size:1.2em">' + row.fileformat_separator + '</span>';
return text_text;
}
},
{ data: "fileformat_codepage" }, // 12
{ data: "program_dir" }, // 13
{ data: "input_dir" }, // 14
{ data: "output_dir" }, // 15
{ data: "error_dir" }, // 16
{ data: "done_dir" }, // 17
{ data: "log_dir" }, // 18
{ data: "export_done_dir" }, // 19
{ data: "import_functions" }, // 20
{ data: "export_functions" }, // 21
{ data: "client_id" }, // 22
{ data: "client_secret" }, // 23
{ data: "organizationId" }, // 24
{ data: "create_user" }, // 25
{ data: "create_timestamp" }, // 26
{ data: "update_user" }, // 27
{ data: "update_timestamp" }, // 28
{ data: "company_logo_url" }, // 29
{ data: "number_of_exports" }, // 30
{ data: "number_of_imports" }, // 31
{ data: "ERPname" }, // 32
{ data: "ERPdescription" }, // 33
{ data: "ERPurl" }, // 34
{ data: "json_default_path" }, // 35
{ data: "json_gps_default_path" }, // 36
{ data: "name" }, // 37
{ data: "group" }, // 38
{ data: null, // 39
render: function (data, type, row, meta)
{
//console.table( data );
// Create edit button
var myButton = '<button id="edt-' + row.pk_customer + '" class="edit-btn btn btn-primary btn-block text-truncate xmr-1"><?php echo $reeft_button_show_details ?></button>';
return myButton;
}
}, // 40
{ data: null,
render: function (data, type, row, meta)
{
// Create delete button
var myButton = '<button id="dlt-' + '-' + row.pk_customer + '" class="delete-btn btn btn-danger text-truncate btn-block xmr-1"><?php echo $reeft_button_delete ?></button>';
return myButton;
}
}, // 41
{ data: null,
render: function (data, type, row, meta)
{
// Create log button
var myButton = '<button id="log-' + '-' + row.pk_customer + '" class="log-btn btn btn-primary text-truncate btn-block xmr-1"><?php echo $reeft_button_show_log ?></button>';
return myButton;
}
}, // 42
{ data: null,
render: function (data, type, row, meta)
{
// Create de/re-activate button
var showDeact = 'd-none';
var showReact = 'd-none';
if ( row.cust_active == 1 ) {
showDeact = '';
} else {
showReact = '';
}
var myButton = '<button id="deact' + '-' + row.pk_customer + '" class="act-btn btn btn-danger text-truncate btn-block xmr-1 ' + showDeact + '" onclick="customerActivate(\'' + row.pk_customer + '\', \'*deactivate\')"><?php echo $reeft_button_deactivate ?></button>'+'<button id="react' + '-' + row.pk_customer + '" class="act-btn btn btn-success text-truncate btn-block xmr-1 ' + showReact + '" onclick="customerActivate(\'' + row.pk_customer + '\', \'*reactivate\')"><?php echo $reeft_button_reactivate ?></button>';
return myButton;
}
}
],
pageLength: 10,
lengthChange: true,
layout: {
top1Start: {
search: {
placeholder: '<?php echo $reeft_datatable_Search_text ?>',
}
},
top1End: [{
pageLength: {
menu: [10, 25, 50, 100 ]
}
}],
topStart: {
info:{
}
},
topEnd: {
paging: {
buttons: 8,
firstLast: true,
boundaryNumbers: true,
}
},
bottomStart: {
buttons: [
{
extend: 'copyHtml5',
text: '<img src="images/copy.png" height="25"> Copy to Clipboard',
titleAttr: 'Copy',
title: 'REEFT Integration - Webservice Data Export - Copy to clipboard',
exportOptions: {
// Fields to export (https://datatables.net/pk_key/button/csv#Examples)
columns: [0,1,2,3,4,5,6]
}
},
{
extend: 'excelHtml5',
text: '<img src="images/microsoft_excel_logo.png" height="25"> Excel',
titleAttr: 'Excel',
title: function(){
return 'REEFT Integration - Webservice Data Export';
//return 'REEFT Integration - Webservice Data Export (' + sql_where + ')';
},
messageTop : function(){
return 'SQL: ' + sql;
},
filename: function(){
var p_id = moment().format('YYYY-MM-DD HH.mm.ss');
return 'REEFT Integration - Webservice Data Export - ' + p_id;
},
exportOptions: {
// Fields to export (https://datatables.net/pk_key/button/csv#Examples)
columns: [0,1,2,3,4,5,6]
}
},
{
extend: 'pdfHtml5',
text: '<img src="images/pdf_logo.png" height="25"> PDF',
titleAttr: 'PDF',
orientation: 'landscape',
title: 'REEFT Integration - Webservice Data Export - PDF',
filename: function(){
var p_id = moment().format('YYYY-MM-DD HH.mm.ss');
return 'REEFT Integration - Webservice Data Export - PDF - ' + p_id;
},
exportOptions: {
// Fields to export (https://datatables.net/pk_key/button/csv#Examples)
columns: [0,1,2,3,4,5,6],
modifier: {
page: 'all'
}
}
}
]
},
bottomEnd: {
paging: {
buttons: 12,
firstLast: true,
boundaryNumbers: true
}
}
},
language:
{
"decimal": ",",
"thousands": ".",
"emptyTable": "<?php echo $reeft_datatable_emptyTable ?>",
"info": "<?php echo $reeft_datatable_Info ?>",
"infoEmpty": "<?php echo $reeft_datatable_InfoEmpty ?>",
"InfoFiltered": "<?php echo $reeft_datatable_InfoFiltered ?>",
"infoPostFix": "",
"lengthMenu": "<?php echo $reeft_datatable_LengthMenu ?>",
"loadingRecords": "",
"processing": "<?php echo $reeft_datatable_Processing ?>",
"search": "<?php echo $reeft_datatable_Search ?>",
"zeroRecords": "<?php echo $reeft_datatable_ZeroRecords ?>",
"paginate":
{
"first": "<?php echo $reeft_datatable_First ?>",
"last": "<?php echo $reeft_datatable_Last ?>",
"next": "<?php echo $reeft_datatable_Next ?>",
"previous": "<?php echo $reeft_datatable_Previous ?>"
},
"aria": {
"orderable": "Order by this column",
"orderableReverse": "Reverse order this column"
}
},
"preDrawCallback": function(settings)
{
},
"drawCallback": function (settings) {
var prv_search = $('#dt-search-0').val();
// Save search
// if ( prv_search != '' ) {
// $('#working-message-text').append( '<span onclick="restoreSearch(\'' + prv_search + '\')">' + prv_search + '</span> / ' );
// }
//$('#dt-search-0').focus().select();
$('#dt-search-0').focus();
// // Output the data for the visible rows to the browser's console
// var api = this.api();
// console.log(api.rows({ page: 'current' }).data());
// Get the table's total width
// var api = this.api();
// var tableWidth = $(api.table().node()).width();
// var containerWidth = $(api.table().container()).width();
// console.log("Table Width: " + tableWidth + "px");
// console.log("Container Width: " + containerWidth + "px");
},
"rowCallback": function(row, data, index)
{
},
"initComplete": function ()
{
}
});
//=============================================================================
// Setup the data to be able to update the table without reloading from the server
//=============================================================================
// Save the table in a global variable
thisGlobalTableData = $('#REEFTvisual_data').DataTable();
// Handle click on "Edit" button
$('#REEFTvisual_data tbody').on('click', '.edit-btn', function() {
thisCurrentRow = $(this).closest('tr');
thisGlobalRowData = thisGlobalTableData.row(thisCurrentRow).data();
// Debug
// console.log("edit");
// console.log(thisGlobalRowData);
//console.log(thisCurrentRow);
dataChange();
});
// Handle click on "Log" button
$('#REEFTvisual_data tbody').on('click', '.log-btn', function() {
thisCurrentRow = $(this).closest('tr');
thisGlobalRowData = thisGlobalTableData.row(thisCurrentRow).data();
// Debug
// console.log("log");
// console.log(thisGlobalRowData);
//console.log(thisCurrentRow);
showLog();
});
// Handle click on "Delete" button
$('#REEFTvisual_data tbody').on('click', '.delete-btn', function() {
thisCurrentRow = $(this).closest('tr');
thisGlobalRowData = thisGlobalTableData.row(thisCurrentRow).data();
// Debug
// console.log(thisGlobalRowData);
// console.log(thisCurrentRow);
dataDeleteConfirm();
});
// Handle click on "Delete" button
$('#REEFTvisual_data tbody').on('click', '#add-button', function() {
// thisCurrentRow = $(this).closest('tr');
// thisGlobalRowData = thisGlobalTableData.row(thisCurrentRow).data();
// // Debug
// // console.log(thisGlobalRowData);
// // console.log(thisCurrentRow);
// dataDeleteConfirm();
});
//=============================================================================
//=============================================================================
// Place curor in search field - the wrapper id is provided by datatables - debug it!
//=============================================================================
$('#REEFTvisual_data_wrapper div.dt-search .dt-input').focus();
//=============================================================================
}
//=============================================================================
// Reason addd -- not used
//=============================================================================
function dataAdd ( input_pk_customer )
{
$('#input-mode').val('*add');
resetModalInputFields();
setModalInputDefaultFields();
// Reset save field
save_cust_number = '';
save_pk_customer = '';
// Reset modal message
resetModalMessage();
// Remove key fields readonly
//$('#modal-input-timeStamp').removeAttr('readonly','readonly');
$('#data-result-button-group-modal').removeClass('d-none');
// Load customer data - NO
$('#input-load-customer-data').val('Y');
$('#input-customer-already-exists').val('N');
// Make selected fields read-only
//$('#modal-input-timeStamp').removeAttr('readonly','readonly');
//$('.read-only-class').attr('readonly','readonly');
$('#button-selectExportterminationfile-no').removeClass('btn-success').addClass('btn-primary');
$('#button-selectExportterminationfile-yes').removeClass('btn-success').addClass('btn-primary');
$('.button-extension--modal-class').removeClass('btn-success').addClass('btn-primary');
$('.fileformat_numberdecimalseparator-class').removeClass('btn-success').addClass('btn-primary');
$('.fileformat_separator-class').removeClass('btn-success').addClass('btn-primary');
$('.fileformat_codepage-class').removeClass('btn-success').addClass('btn-primary');
$('#modal-input-pk_customer').attr('readonly','readonly');
$('#modal-input-cust_active').attr('readonly','readonly');
$('#modal-input-pk_customer').attr('readonly','readonly');
$('#modal-input-cust_active').attr('readonly','readonly');
$('#modal-input-fileformat_ext_file').attr('readonly','readonly');
$('#modal-input-fileformat_exportterminationfile').attr('readonly','readonly');
$('#modal-input-fileformat_numberdecimalseparator').attr('readonly','readonly');
$('#modal-input-fileformat_separator').attr('readonly','readonly');
$('#modal-input-fileformat_codepage').attr('readonly','readonly');
$('#modal-input-pk_customer').attr('readonly','readonly');
$('#modal-input-create_user').attr('readonly','readonly');
$('#modal-input-create_timestamp').attr('readonly','readonly');
$('#modal-input-update_user').attr('readonly','readonly');
$('#modal-input-update_timestamp').attr('readonly','readonly');
$('#modal-input-cust_number').removeAttr('readonly','readonly');
// Show input fields
$('#main-modal-input-fields').removeClass('d-none');
$('#main-modal-dir-work-place').addClass('d-none');
// Reset change checker
$('#input-change-made-somewhere').val( 'N' );
$('#input-work-place-shown').val('*FIELDS');
$('#modal-data-not-saved-warning-wrapper').addClass('d-none');
// Make save button blue again
$('#modal-save-button').removeClass('btn-success').addClass('btn-primary');
$('#modal-save-button-only').removeClass('btn-success').addClass('btn-primary');
// Show modal
$('#customer_maintainModal').modal('show');
}
//=============================================================================
// Show details
//=============================================================================
function dataChange( )
{
var row = thisGlobalRowData;
// Save in fields
var pk_customer = row["pk_customer"];
var cust_active = row["cust_active"];
var cust_number = row["cust_number"];
var cust_name = row["cust_name"];
var cust_group = row["cust_group"];
var product = row["product"];
var description = row["description"];
var integration_version = row["integration_version"];
var fileformat_ext_file = row["fileformat_ext_file"];
var fileformat_exportterminationfile = row["fileformat_exportterminationfile"];
var fileformat_numberdecimalseparator = row["fileformat_numberdecimalseparator"];
var fileformat_separator = row["fileformat_separator"];
var fileformat_codepage = row["fileformat_codepage"];
var program_dir = row["program_dir"];
var input_dir = row["input_dir"];
var output_dir = row["output_dir"];
var error_dir = row["error_dir"];
var done_dir = row["done_dir"];
var log_dir = row["log_dir"];
var export_done_dir = row["export_done_dir"];
var import_functions = row["import_functions"];
var export_functions = row["export_functions"];
var client_id = row["client_id"];
var client_secret = row["client_secret"];
var organizationId = row["organizationId"];
var create_user = row["create_user"];
var create_timestamp = row["create_timestamp"];
var update_user = row["update_user"];
var update_timestamp = row["update_timestamp"];
var company_logo_url = row["company_logo_url"];
var number_of_exports = row["number_of_exports"];
var number_of_imports = row["number_of_imports"];
var ERPname = row["ERPname"];
var ERPdescription = row["ERPdescription"];
var ERPurl = row["ERPurl"];
var json_default_path = row["json_default_path"];
var json_gps_default_path = row["json_gps_default_path"];
var counter = row["counter"];
$('#input-mode').val('*update');
// Load customer data
$('#input-load-customer-data').val('N');
$('#input-customer-already-exists').val('N');
// save_cust_number = timeStamp;
save_pk_customer = pk_customer;
save_cust_number = cust_number;
// Set active /inactive
selectActiveInactive( cust_active );
// Set group value
selectGroupValueModal( cust_group );
// Set extension
selectExtension( fileformat_ext_file );
// Set Fileformat export termination file
selectExportterminationfile( fileformat_exportterminationfile );
// Set Fileformat export termination file
selectNumberDecimalSeparator( fileformat_numberdecimalseparator, '' );
// Set Fileformat export termination file
selectFileFormatSeparator( fileformat_separator, '' );
// Set Fileformat code page
selectCodePage( fileformat_codepage );
// Load customer data - NO
$('#input-load-customer-data').val('N');
// Move to input fields
$('#modal-input-counter').val(counter);
$('#modal-input-pk_customer').val(pk_customer);
$('#modal-input-cust_active').val(cust_active);
$('#modal-input-cust_number').val(cust_number);
$('#modal-input-cust_name').val(cust_name);
$('#modal-input-cust_group').val(cust_group);
$('#modal-input-product').val(product);
$('#modal-input-description').val(description);
$('#modal-input-integration_version').val(integration_version);
$('#modal-input-fileformat_ext_file').val(fileformat_ext_file);
$('#modal-input-fileformat_exportterminationfile').val(fileformat_exportterminationfile);
$('#modal-input-fileformat_numberdecimalseparator').val(fileformat_numberdecimalseparator);
$('#modal-input-fileformat_separator').val(fileformat_separator);
$('#modal-input-fileformat_codepage').val(fileformat_codepage);
$('#modal-input-program_dir').val(program_dir);
$('#modal-input-program_dir_org').val('<?php echo $DFT_PROGRAM_DIR ?>');
$('#modal-input-input_dir').val(input_dir);
$('#modal-input-input_dir_org').val('<?php echo $DFT_INPUT_DIR ?>');
$('#modal-input-output_dir').val(output_dir);
$('#modal-input-output_dir_org').val('<?php echo $DFT_OUTPUT_DIR ?>');
$('#modal-input-error_dir').val(error_dir);
$('#modal-input-error_dir_org').val('<?php echo $DFT_ERROR_DIR ?>');
$('#modal-input-done_dir').val(done_dir);
$('#modal-input-done_dir_org').val('<?php echo $DFT_DONE_DIR ?>');
$('#modal-input-log_dir').val(log_dir);
$('#modal-input-log_dir_org').val('<?php echo $DFT_LOG_DIR ?>');
$('#modal-input-export_done_dir').val(export_done_dir);
$('#modal-input-export_done_dir_org').val('<?php echo $DFT_EXPORT_DONE_DIR ?>');
$('#modal-input-import_functions').val(import_functions);
$('#modal-input-export_functions').val(export_functions);
$('#modal-input-client_id').val(client_id);
$('#modal-input-client_secret').val(client_secret);
$('#modal-input-organizationId').val(organizationId);
$('#modal-input-create_user').val(create_user);
$('#modal-input-create_timestamp').val(create_timestamp);
$('#modal-input-update_user').val(update_user);
$('#modal-input-update_timestamp').val(update_timestamp);
$('#modal-input-company_logo_url').val(company_logo_url);
$('#modal-input-number_of_exports').val(number_of_exports);
$('#modal-input-number_of_imports').val(number_of_imports);
$('#modal-input-ERPname').val(ERPname);
$('#modal-input-ERPdescription').val(ERPdescription);
$('#modal-input-ERPurl').val(ERPurl);
$('#modal-input-json_default_path').val(json_default_path);
$('#modal-input-json_gps_default_path').val(json_gps_default_path);
// Make key fields readonly
$('#modal-input-timeStamp').attr('readonly','readonly');
$('#data-result-button-group-modal').removeClass('d-none');
$('#modal-input-pk_customer').attr('readonly','readonly');
$('#modal-input-cust_active').attr('readonly','readonly');
$('#modal-input-fileformat_ext_file').attr('readonly','readonly');
$('#modal-input-fileformat_exportterminationfile').attr('readonly','readonly');
$('#modal-input-fileformat_numberdecimalseparator').attr('readonly','readonly');
$('#modal-input-fileformat_separator').attr('readonly','readonly');
$('#modal-input-fileformat_codepage').attr('readonly','readonly');
// DIRs
$('.read-only-dir-class').attr('readonly','readonly');
$('#modal-input-create_user').attr('readonly','readonly');
$('#modal-input-create_timestamp').attr('readonly','readonly');
$('#modal-input-update_user').attr('readonly','readonly');
$('#modal-input-update_timestamp').attr('readonly','readonly');
$('#modal-input-cust_number').attr('readonly','readonly');
// Create link to tinyfilemanager
wrkField = DFT_TINYFILEMANAGER_BASE_LINK.replace( "%1",cust_number );
var tinyLink = '<button class="btn btn-dark btn-sm" type="button" onclick="popUpCenter(\'' + wrkField + '\')"><?php echo $reeft_text0195 ?></button>';
$('#modal-tinyfilemanager-button').html( tinyLink );
// Reset modal message
resetModalMessage();
// Set text to work with fields
$('#main-modal-input-fields').removeClass('d-none');
$('#main-modal-dir-work-place').addClass('d-none');
$('#button-show-dir-work-place').html('<?php echo $reeft_text0208 ?>')
$('#modal-data-not-saved-warning-wrapper').addClass('d-none');
// Reset change checker
$('#input-change-made-somewhere').val( 'N' );
$('#input-work-place-shown').val('*FIELDS');
// Make save button blue again
$('#modal-save-button').removeClass('btn-success').addClass('btn-primary');
$('#modal-save-button-only').removeClass('btn-success').addClass('btn-primary');
// Show modal
$('#customer_maintainModal').modal('show');
}
//=============================================================================
// Show log
//=============================================================================
function showLog( )
{
var row = thisGlobalRowData;
// Save in fields
var pk_customer = row["pk_customer"];
var cust_active = row["cust_active"];
var cust_number = row["cust_number"];
var cust_name = row["cust_name"];
var cust_group = row["cust_group"];
var product = row["product"];
var description = row["description"];
var integration_version = row["integration_version"];
var fileformat_ext_file = row["fileformat_ext_file"];
var fileformat_exportterminationfile = row["fileformat_exportterminationfile"];
var fileformat_numberdecimalseparator = row["fileformat_numberdecimalseparator"];
var fileformat_separator = row["fileformat_separator"];
var fileformat_codepage = row["fileformat_codepage"];
var program_dir = row["program_dir"];
var input_dir = row["input_dir"];
var output_dir = row["output_dir"];
var error_dir = row["error_dir"];
var done_dir = row["done_dir"];
var log_dir = row["log_dir"];
var export_done_dir = row["export_done_dir"];
var import_functions = row["import_functions"];
var export_functions = row["export_functions"];
var client_id = row["client_id"];
var client_secret = row["client_secret"];
var organizationId = row["organizationId"];
var create_user = row["create_user"];
var create_timestamp = row["create_timestamp"];
var update_user = row["update_user"];
var update_timestamp = row["update_timestamp"];
var company_logo_url = row["company_logo_url"];
var number_of_exports = row["number_of_exports"];
var number_of_imports = row["number_of_imports"];
var ERPname = row["ERPname"];
var ERPdescription = row["ERPdescription"];
var ERPurl = row["ERPurl"];
var json_default_path = row["json_default_path"];
var json_gps_default_path = row["json_gps_default_path"];
var counter = row["counter"];
var logUrl = "customerLog_maintain.php?cust_number="+cust_number+"&cust_name="+cust_name;
popUpFull(logUrl,'','','');
}
//=============================================================================
// Save
//=============================================================================
function dataSave( saveAction )
{
// Reset modal message
resetModalMessage();
// Check content of fields
// Customer already exists
if ( $('#input-customer-already-exists').val() == 'Y' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0087 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-cust_number').trigger('focus');
return false;
}
// Customer number
if ( $('#modal-input-cust_number').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0007 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-cust_number').trigger('focus');
return false;
}
// Customer name
if ( $('#modal-input-cust_name').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0008 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-cust_name').trigger('focus');
return false;
}
// Customer group
if ( $('#modal-input-cust_group').val() == '' || $('#modal-input-cust_group').val() == '0' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0006 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-cust_group').trigger('focus');
return false;
}
// Fileformat extension file
if ( $('#modal-input-fileformat_ext_file').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0009 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-fileformat_ext_file').trigger('focus');
return false;
}
// Fileformat export termination file
if ( $('#modal-input-fileformat_exportterminationfile').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0010 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-fileformat_exportterminationfile').trigger('focus');
return false;
}
// Decimal separator
if ( $('#modal-input-fileformat_numberdecimalseparator').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0011 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-fileformat_numberdecimalseparator').trigger('focus');
return false;
}
// Field separator
if ( $('#modal-input-fileformat_separator').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0012 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-fileformat_separator').trigger('focus');
return false;
}
// Code page
if ( $('#modal-input-fileformat_codepage').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0013 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-fileformat_codepage').trigger('focus');
return false;
}
// Input dir
if ( $('#modal-input-input_dir').val() == '' ) {
replaceValue = '<?php echo $reeft_text0237 ?>';
wrkMessage = '<?php echo $reeft_error0096 ?>';
wrkMessage = wrkMessage.replace("%1",replaceValue );
$('#modal-message').addClass('border-bottom').html( wrkMessage );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-input_dir').trigger('focus');
return false;
}
// Output dir
if ( $('#modal-input-output_dir').val() == '' ) {
replaceValue = '<?php echo $reeft_text0236 ?>';
wrkMessage = '<?php echo $reeft_error0096 ?>';
wrkMessage = wrkMessage.replace("%1",replaceValue );
$('#modal-message').addClass('border-bottom').html( wrkMessage );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-output_dir').trigger('focus');
return false;
}
// Done dir
if ( $('#modal-input-done_dir').val() == '' ) {
replaceValue = '<?php echo $reeft_text0234 ?>';
wrkMessage = '<?php echo $reeft_error0096 ?>';
wrkMessage = wrkMessage.replace("%1",replaceValue );
$('#modal-message').addClass('border-bottom').html( wrkMessage );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-done_dir').trigger('focus');
return false;
}
// Error dir
if ( $('#modal-input-error_dir').val() == '' ) {
replaceValue = '<?php echo $reeft_text0235 ?>';
wrkMessage = '<?php echo $reeft_error0096 ?>';
wrkMessage = wrkMessage.replace("%1",replaceValue );
$('#modal-message').addClass('border-bottom').html( wrkMessage );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-error_dir').trigger('focus');
return false;
}
// Log dir
if ( $('#modal-input-log_dir').val() == '' ) {
replaceValue = '<?php echo $reeft_text0233 ?>';
wrkMessage = '<?php echo $reeft_error0096 ?>';
wrkMessage = wrkMessage.replace("%1",replaceValue );
$('#modal-message').addClass('border-bottom').html( wrkMessage );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-log_dir').trigger('focus');
return false;
}
// Export done dir
if ( $('#modal-input-export_done_dir').val() == '' ) {
replaceValue = '<?php echo $reeft_text0204 ?>';
wrkMessage = '<?php echo $reeft_error0096 ?>';
wrkMessage = wrkMessage.replace("%1",replaceValue );
$('#modal-message').addClass('border-bottom').html( wrkMessage );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-export_done_dir').trigger('focus');
return false;
}
// Program dir
if ( $('#modal-input-program_dir').val() == '' ) {
replaceValue = '<?php echo $reeft_text0238 ?>';
wrkMessage = '<?php echo $reeft_error0096 ?>';
wrkMessage = wrkMessage.replace("%1",replaceValue );
$('#modal-message').addClass('border-bottom').html( wrkMessage );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-program_dir').trigger('focus');
return false;
}
// Client secret
if ( $('#modal-input-client_secret').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0015 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-client_secret').trigger('focus');
return false;
}
// Client id
if ( $('#modal-input-client_id').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0016 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-client_id').trigger('focus');
return false;
}
// Organization Id
if ( $('#modal-input-organizationId').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0017 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-organizationId').trigger('focus');
return false;
}
// ERP name
if ( $('#modal-input-ERPname').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0018 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-ERPname').trigger('focus');
return false;
}
// ERP description
if ( $('#modal-input-ERPdescription').val() == '' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_error0019 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
$('#modal-input-ERPdescription').trigger('focus');
return false;
}
// If input just check of input fields, tanks for now...
if ( saveAction == '*JUST_CHECK' ) {
return;
}
// alert('Done...')
// return;
var mode = $('#input-mode').val();
//===============================================================================
// Remove # if any
//===============================================================================
// Setup remove string
let mySaveString;
// var myWorkField = $('#modal-input-DESCP1').val();
// myWorkField = myWorkField.replace("#", "");
// $('#modal-input-DESCP1').val( myWorkField );
// var myWorkField = $('#modal-input-DESCP2').val();
// myWorkField = myWorkField.replace("#", "");
// $('#modal-input-DESCP2').val( myWorkField );
// var myWorkField = $('#modal-input-TOK_ENV').val();
// myWorkField = myWorkField.replace(",", ".");
// myWorkField = parseFloat(myWorkField).toFixed(3).toString();
// $('#modal-input-CHRMIN').val( myWorkField );
// var myWorkField = $('#modal-input-TOK_ENVCOL').val();
// myWorkField = myWorkField.replace(",", ".");
// myWorkField = parseFloat(myWorkField).toFixed(3).toString();
// $('#modal-input-CHRMAX').val( myWorkField );
// var myWorkField = $('#modal-input-TOK_JASSVR').val();
// myWorkField = myWorkField.replace(",", ".");
// myWorkField = parseFloat(myWorkField).toFixed(0).toString();
// $('#modal-input-DBGVAL').val( myWorkField );
//===============================================================================
// Update logs fields
//===============================================================================
if ( mode == '*update' ) {
var currentTime = moment().format('YYYY-MM-DD HH:mm:ss');
currentTime = REEFT_format_date( currentTime, DFT_DATE_DISPLAY_FORMAT )
$('#modal-input-update_user').val('<?php echo "$session_dft_username" ?>');
$('#modal-input-update_timestamp').val(currentTime);
}
//===============================================================================
var cust_name = $('#modal-input-cust_name').val();
cust_name = cust_name.replace(/\'/g,"''");
$('#modal-input-cust_name').val(cust_name);
// Make array and json
var myData = $('#dataForm').find('input, select, textarea').serializeArray();
var result = JSON.stringify(myData);
var result = encodeURIComponent( result );
// console.log(result);
// console.log(myData);
// return;
var parmData = 'data=' + result
+ '&mode=' + mode
;
$.ajax({
url: "customer_maintain_save.php",
type: "POST",
data: parmData,
dataType: "json",
cache: false,
})
.done(function( jsonData ) {
//=================================================================
// START - Update the table without doing a server reload
// Only update
//=================================================================
if ( mode == '*update' ) {
//event.preventDefault();
// Debug
// console.log(myGlobalRowData[0]);
// console.log(myGlobalRowData[1]);
// console.log(myGlobalRowData[2]);
// console.log(thisGlobalRowData);
// console.table(myGlobalTableData);
// Get the data for the "Change/Delete button", so we do not need to create it again
// myChangeButtonData = myGlobalRowData[6];
// myDeleteButtonData = myGlobalRowData[7];
//==============================================
// Use this if you want to update the whole row
//==============================================
// myGlobalTableData.row(myCurrentRow).data([
// modal_input_HUB_WEBNAM,
// modal_input_LSTCAL,
// modal_input_DESCP1,
// modal_input_DESCP2,
// modal_input_COUNT,
// modal_input_SERTYP,
// myChangeButtonData,
// myDeleteButtonData,
// modal_input_DESCP1,
// modal_input_DESCP2
// ])
// .draw(false)
// ;
//=======================================================
// Use this if you want to update one or more table cells
//=======================================================
//order: [4, 2, 3, 0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
// console.log(thisGlobalTableData.cell(thisCurrentRow, 0 ).data())
// console.log(thisGlobalTableData.cell(thisCurrentRow, 1 ).data())
// console.log(thisGlobalTableData.cell(thisCurrentRow, 3 ).data())
// console.log(thisGlobalTableData)
// console.log(thisCurrentRow)
thisGlobalTableData.cell(thisCurrentRow, 0 ).data( $('#modal-input-pk_customer').val() );
thisGlobalTableData.cell(thisCurrentRow, 1 ).data( $('#modal-input-cust_active').val() );
thisGlobalTableData.cell(thisCurrentRow, 2 ).data( $('#modal-input-cust_number').val() );
thisGlobalTableData.cell(thisCurrentRow, 3 ).data( $('#modal-input-cust_name').val() );
thisGlobalTableData.cell(thisCurrentRow, 4 ).data( $('#modal-input-cust_group').val() );
thisGlobalTableData.cell(thisCurrentRow, 5 ).data( $('#modal-input-product').val() );
thisGlobalTableData.cell(thisCurrentRow, 6 ).data( $('#modal-input-description').val() );
thisGlobalTableData.cell(thisCurrentRow, 7 ).data( $('#modal-input-integration_version').val() );
thisGlobalTableData.cell(thisCurrentRow, 8 ).data( $('#modal-input-fileformat_ext_file').val() );
thisGlobalTableData.cell(thisCurrentRow, 9 ).data( $('#modal-input-fileformat_exportterminationfile').val() );
thisGlobalTableData.cell(thisCurrentRow, 10 ).data( $('#modal-input-fileformat_numberdecimalseparator').val() );
thisGlobalTableData.cell(thisCurrentRow, 11 ).data( $('#modal-input-fileformat_separator').val() );
thisGlobalTableData.cell(thisCurrentRow, 12 ).data( $('#modal-input-fileformat_codepage').val() );
thisGlobalTableData.cell(thisCurrentRow, 13 ).data( $('#modal-input-program_dir').val() );
thisGlobalTableData.cell(thisCurrentRow, 14 ).data( $('#modal-input-input_dir').val() );
thisGlobalTableData.cell(thisCurrentRow, 15 ).data( $('#modal-input-output_dir').val() );
thisGlobalTableData.cell(thisCurrentRow, 16 ).data( $('#modal-input-error_dir').val() );
thisGlobalTableData.cell(thisCurrentRow, 17 ).data( $('#modal-input-done_dir').val() );
thisGlobalTableData.cell(thisCurrentRow, 18 ).data( $('#modal-input-log_dir').val() );
thisGlobalTableData.cell(thisCurrentRow, 19 ).data( $('#modal-input-export_done_dir').val() );
thisGlobalTableData.cell(thisCurrentRow, 20 ).data( $('#modal-input-import_functions').val() );
thisGlobalTableData.cell(thisCurrentRow, 21 ).data( $('#modal-input-export_functions').val() );
thisGlobalTableData.cell(thisCurrentRow, 22 ).data( $('#modal-input-client_id').val() );
thisGlobalTableData.cell(thisCurrentRow, 23 ).data( $('#modal-input-client_secret').val() );
thisGlobalTableData.cell(thisCurrentRow, 24 ).data( $('#modal-input-organizationId').val() );
thisGlobalTableData.cell(thisCurrentRow, 25 ).data( $('#modal-input-create_user').val() );
thisGlobalTableData.cell(thisCurrentRow, 26 ).data( $('#modal-input-create_timestamp').val() );
thisGlobalTableData.cell(thisCurrentRow, 27 ).data( $('#modal-input-update_user').val() );
thisGlobalTableData.cell(thisCurrentRow, 28 ).data( $('#modal-input-update_timestamp').val() );
thisGlobalTableData.cell(thisCurrentRow, 29 ).data( $('#modal-input-company_logo_url').val() );
thisGlobalTableData.cell(thisCurrentRow, 30 ).data( $('#modal-input-number_of_exports').val() );
thisGlobalTableData.cell(thisCurrentRow, 31 ).data( $('#modal-input-number_of_imports').val() );
thisGlobalTableData.cell(thisCurrentRow, 32 ).data( $('#modal-input-ERPname').val() );
thisGlobalTableData.cell(thisCurrentRow, 33 ).data( $('#modal-input-ERPdescription').val() );
thisGlobalTableData.cell(thisCurrentRow, 34 ).data( $('#modal-input-ERPurl').val() );
thisGlobalTableData.cell(thisCurrentRow, 35 ).data( $('#modal-input-json_default_path').val() );
thisGlobalTableData.cell(thisCurrentRow, 36 ).data( $('#modal-input-json_gps_default_path').val() );
//thisGlobalTableData = $('#REEFTvisual_data').DataTable();
thisGlobalTableData.cell(thisCurrentRow).draw(false);
// Show new color
// var TOK_APPRLS_TEXT = '<div style="display:block;margin:auto;width:25px;height:25px; background-color:' + $('#modal-input-TOK_APPRLS').val() + '"> </div>';
// thisGlobalTableData.cell(thisCurrentRow, 5 ).data( TOK_APPRLS_TEXT );
// //thisGlobalTableData.cell(thisCurrentRow, 5 ).data( TOK_APPRLS_TEXT ).draw(false);
// if ( $('#modal-input-TOK_MACHIN').val() == 'N' ) {
// TOK_MACHIN_text = '<?php //echo $reeft_NO ?>';
// } else {
// TOK_MACHIN_text = '<?php //echo $reeft_YES ?>';
// }
// thisGlobalTableData.cell(thisCurrentRow, 9 ).data( TOK_MACHIN_text );
}
//=================================================================
// END - Update the table without doing a server reload
//=================================================================
//=================================================================
// Close the modal, only if wanted
//=================================================================
if ( saveAction == '*SAVE_AND_CLOSE' ) {
$('#customer_maintainModal').modal('hide');
}
if ( saveAction == '*SAVE_ONLY' ) {
$('#modal-message').addClass('border-bottom').html( '<?php echo $reeft_text0192 ?>' );
}
//=================================================================
// Only when add
//=================================================================
if ( mode == '*add' ) {
// var myButtonID = 'select-button-line-id-' + $('#input-timeStamp').val();
// $('#' + myButtonID).click();
getData('');
}
})
.always(function( jsonData ) {
if ( saveAction == '*SAVE_AND_CLOSE' ) {
resetModalInputFields();
}
// Load customer data
if ( $('#input-load-customer-data').val() == 'Y' ) {
getCustomerData();
}
$('#input-load-customer-data').val('N');
})
.fail(function( xhr, ajaxOptions, thrownError ) {
console.log('I am failed..');
console.log( thrownError );
console.log( xhr );
});
}
//=============================================================================
// Delete confirm
//=============================================================================
function dataDeleteConfirm( )
{
$('#input-mode').val('*delete');
var row = thisGlobalRowData;
var input_cust_number = row["cust_number"];
$('#confirm-delete-cust_number').val(input_cust_number);
// Create confirm text
$('#confirm-delete-text-cust_number').html(input_cust_number);
$('#confirm-delete-modal-message').addClass('d-none').html( ' ' );
$('#customer_confirmDeleteModal').modal('show');
}
//=============================================================================
// Delete
//=============================================================================
function dataDeleteExec()
{
// Reset modal message
resetModalMessage();
var mode = $('#input-mode').val();
// Make array and json
var myData = $('#dataForm-delete').find('input, select').serializeArray();
var result = JSON.stringify(myData);
// console.log(result);
// console.log(myData);
//return;
var parmData = 'data=' + result
+ '&mode=' + mode
;
$.ajax({
url: "customer_maintain_save.php",
type: "POST",
data: parmData,
dataType: "json",
cache: false,
})
.done(function( jsonData ) {
var returnCode = jsonData.header.returnCode;
var returnMsg = jsonData.header.returnMsg;
var entries_found = jsonData.header.entries_found;
if ( returnCode == '00') {
$('#customer_confirmDeleteModal').modal('hide');
resetModalInputFields();
getData('');
} else {
var errorTxt = '<?php echo $reeft_error0099 ?>' + ' ' + returnMsg;
$('#confirm-delete-modal-message').removeClass('d-none').html( errorTxt );
}
})
.always(function( jsonData ) {
})
.fail(function( xhr, ajaxOptions, thrownError ) {
console.log('I am failed..');
console.log( xhr );
console.log( thrownError );
});
}
//=============================================================================
// Re or Deactivate customer
//=============================================================================
function customerActivate( customerKey, mode )
{
var parmData = 'customerKey=' + customerKey
+ '&mode=' + mode
;
$.ajax({
url: "customer_maintain_activate.php",
type: "POST",
data: parmData,
dataType: "json",
cache: false,
})
.done(function( jsonData ) {
var returnCode = jsonData.header.returnCode;
var returnMsg = jsonData.header.returnMsg;
var entries_found = jsonData.header.entries_found;
if ( returnCode == '00') {
getData('');
} else {
console.log("returnCode " + returnCode + " returnMsg " + returnMsg);
}
})
.always(function( jsonData ) {
})
.fail(function( xhr, ajaxOptions, thrownError ) {
console.log('I am failed..');
console.log( xhr );
console.log( thrownError );
});
}
//=============================================================================
// Check if userid exists
//=============================================================================
function checkDataExists()
{
var input_cust_number = $('#modal-input-cust_number').val();
// Name contains invalid chars
if ( input_cust_number == '' ) {
resetDefaultDirPath();
return;
}
// Check if data is correct
isValid = cleanAndValidate(input_cust_number);
// Name contains invalid chars
if ( isValid === false ) {
$('#modal-message').html('<?php echo $reeft_error0014 ?>');
resetDefaultDirPath();
return;
}
// If update, then the "orginal" code is ok
if ( $('#input-mode').val() == '*update' ) {
if ( input_cust_number == save_cust_number ) {
return;
}
}
var parmData = 'cust_number=' + input_cust_number
;
$.ajax({
url: "customer_maintain_exists_get_data.php",
type: "GET",
data: parmData,
dataType: "json",
cache: false,
})
.done(function( jsonData ) {
var returnCode = jsonData.header.returnCode;
var returnMsg = jsonData.header.returnMsg;
var entries_found = jsonData.header.entries_found;
if ( returnCode == '00') {
$('#modal-message').addClass(' border-bottom').html( '<?php echo $reeft_error0087 ?>' );
$('#modal-save-button').addClass('disabled').prop("disabled", true);
$('#modal-save-button-only').addClass('disabled').prop("disabled", true);
//$('#modal-input-cust_number').trigger('focus');
$('#input-customer-already-exists').val('Y');
resetDefaultDirPath();
return false;
} else {
// Reset modal message
resetModalMessage();
$('#input-customer-already-exists').val('N');
createDefaultDirPath();
}
})
.always(function( jsonData ) {
})
.fail(function( xhr, ajaxOptions, thrownError ) {
console.log('I am failed..');
console.log( xhr );
});
}
//=============================================================================
// Reset modal input fields
//=============================================================================
function resetModalInputFields()
{
$('#modal-input-pk_customer').val('0');
$('#modal-input-cust_active').val('');
$('#modal-input-cust_number').val('');
$('#modal-input-cust_name').val('');
$('#modal-input-cust_group').val('');
$('#modal-input-product').val('');
$('#modal-input-description').val('');
$('#modal-input-integration_version').val('');
$('#modal-input-fileformat_ext_file').val('');
$('#modal-input-fileformat_exportterminationfile').val('');
$('#modal-input-fileformat_numberdecimalseparator').val('');
$('#modal-input-fileformat_separator').val('');
$('#modal-input-fileformat_codepage').val('');
$('#modal-input-program_dir').val('');
$('#modal-input-input_dir').val('');
$('#modal-input-output_dir').val('');
$('#modal-input-error_dir').val('');
$('#modal-input-done_dir').val('');
$('#modal-input-log_dir').val('');
$('#modal-input-export_done_dir').val('');
$('#modal-input-import_functions').val('');
$('#modal-input-export_functions').val('');
$('#modal-input-client_id').val('');
$('#modal-input-client_secret').val('');
$('#modal-input-organizationId').val('');
$('#modal-input-create_user').val('');
$('#modal-input-create_timestamp').val('');
$('#modal-input-update_user').val('');
$('#modal-input-update_timestamp').val('');
$('#modal-input-company_logo_url').val('');
$('#modal-input-number_of_exports').val('');
$('#modal-input-number_of_imports').val('');
$('#modal-input-ERPname').val('');
$('#modal-input-ERPdescription').val('');
$('#modal-input-ERPurl').val('');
$('#modal-input-json_default_path').val('');
$('#modal-input-json_gps_default_path').val('');
//$('#input-mode').val('');
}
//=============================================================================
// Set default modal input fields
//=============================================================================
function setModalInputDefaultFields()
{
$('#modal-input-cust_active').val('1');
$('#button-selectActiveInactive-yes').removeClass('btn-primary').addClass('btn-success');
$('#button-selectActiveInactive-no').removeClass('btn-danger').addClass('btn-primary');
$('.select-button-line-modal').removeClass('btn-success').addClass('btn-primary');
var currentTime = moment().format('YYYY-MM-DD HH:mm:ss');
currentTime = REEFT_format_date( currentTime, DFT_DATE_DISPLAY_FORMAT )
$('#modal-input-create_user').val('<?php echo "$session_dft_username"; ?>');
$('#modal-input-create_timestamp').val( currentTime );
$('#modal-input-product').val( REEFT_DEFAULT_INTEGRATON_PRODUCT );
$('#modal-input-description').val( REEFT_DEFAULT_INTEGRATON_DESCRIPTION );
$('#modal-input-integration_version').val( REEFT_DEFAULT_INTEGRATON_VERSION );
}
//=============================================================================
// Log off
//=============================================================================
function signoff()
{
window.location.href = "logout.php";
}
//=============================================================================
// Load page
//=============================================================================
function loadPage(url, p1, p2, p3)
{
window.location.href = url;
}
//=============================================================================
// Reset modal message
//=============================================================================
function resetModalMessage() {
// Reset
//$('#modal-message').removeClass('p-2 font-weight-bold border border-danger rounded bg-light').html( ' ' );
$('#modal-message').removeClass('border-bottom').html( ' ' );
$('#modal-save-button').removeClass('disabled').prop("disabled", false);
$('#modal-save-button-only').removeClass('disabled').prop("disabled", false);
}
//=============================================================================
// Full screen popup
//=============================================================================
function popUpFull( url, p1, p2, p3 )
{
var winname = 'win_' + url;
params = 'width='+screen.width;
params += ', height='+screen.height;
params += ', top=0, left=0'
params += ', fullscreen=yes';
params += ',scrollbars=1';
overview_win = window.open(url,winname, params);
if (window.focus) {overview_win.focus();}
return false;
}
//=============================================================================
// screen popup - center
//=============================================================================
function popUpCenter(url, p1, p2, p3)
{
var v1_w = screen.availWidth;
var v1_h = screen.availHeight;
if ( parseInt(v1_w) > 1800 ) {
v1_w = 1800;
v1_h = v1_h - 200;
v1_center = v1_w/0.8;
}
// Center popup as good as possible
var left = (screen.width - v1_w) / 2;
var top = (screen.height - v1_h) / 4;
var winname = 'win_' + url;
params = 'width='+v1_w;
params += ', height='+v1_h;
params += ', top=' + top + ', left=' + left;
params += ', fullscreen=yes';
params += ',scrollbars=1';
overview_win = window.open(url,winname, params);
if (window.focus) {overview_win.focus();}
return false;
}
//=============================================================================
// screen popup - center - bigger
//=============================================================================
function popUpCenterBig(url, p1, p2, p3)
{
var v1_w = screen.availWidth;
var v1_h = screen.availHeight;
// Get 25%
v1_w_pct = v1_w * 0.25;
v1_w_new = v1_w - v1_w_pct;
if ( v1_w_new < 1 ) {
v1_w_new = 1800;
}
v1_w = v1_w_new;
v1_h = v1_h - 200;
v1_center = v1_w/0.8;
// Center popup as good as possible
var left = (screen.width - v1_w) / 2;
var top = (screen.height - v1_h) / 4;
var winname = 'win_' + url;
params = 'width='+v1_w;
params += ', height='+v1_h;
params += ', top=' + top + ', left=' + left;
params += ', fullscreen=yes';
params += ',scrollbars=1';
overview_win2 = window.open(url, winname, params);
if (overview_win2 && !overview_win2.closed) {
overview_win2.focus();
}
}
//=============================================================================
// Popup top
//=============================================================================
function popUpTop(url, p1, p2, p3)
{
var winname = 'win_' + url;
w = 650;
h = 750;
params = 'width='+w;
params += ', height='+h;
params += ', top=0, left=0'
params += ', fullscreen=no';
params += ',scrollbars=1';
overview_win = window.open(url,winname, params);
if (window.focus) {overview_win.focus();}
return false;
}
//=============================================================================
// Select line modal
//=============================================================================
function selectGroupValueModal( inputLine )
{
$('#modal-input-cust_group').val( inputLine );
var selectButtonLineID = 'select-button-line-id-modal-' + inputLine;
$('.select-button-line-modal').removeClass('btn-success').addClass('btn-primary');
$('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success');
// Place cursor in next field?
//$('#modal-input-cust_number').trigger('focus');
resetModalMessage();
triggerBlur();
}
//=============================================================================
// Close modal
//=============================================================================
function closeModal() {
$('#customer_maintainModal').modal('hide');
}
//=============================================================================
// Scroll to something
//=============================================================================
function scrollToSomething( target )
{
//$.scrollTo('0',3200);
thisID = '#' + target;
$.scrollTo( thisID, 1000);
}
//=============================================================================
// copy to clipboard
//=============================================================================
function copyToClipBoard( input_text_to_copy )
{
$('#myInput').val( input_text_to_copy );
// Get the text field
var copyText = document.getElementById("myInput");
// Select the text field
copyText.select();
copyText.setSelectionRange(0, 99999); // For mobile devices
// Copy the text inside the text field
navigator.clipboard.writeText(copyText.value);
// Alert the copied text
alert( copyText.value + ' ' + 'copied to clipboard' );
}
//=============================================================================
// Set months
//=============================================================================
function setDefaultMonths() {
$('#default-month-buttons').html('');
var monthButtons = '';
var numberOfMonths = 6;
curMdrVar = numberOfMonths;
for (let step = 0; step < numberOfMonths; step++)
{
curMdrVar = parseInt( curMdrVar ) - 1;
//curMdrVar = step;
var defaultMonth = moment().subtract(curMdrVar, 'month').format("MM");
var monthName = setDefaultMonthName( defaultMonth );
createDefaultMonthButton(curMdrVar, defaultMonth, monthName);
}
}
//=============================================================================
// Create button
//=============================================================================
function createDefaultMonthButton( number, month, monthName )
{
var thisId = 'default-button-' + month;
var currentYear = getDefaultYearCalc( number, month, monthName );
var monthButton = '<button type="button" class="btn-default-date-interval btn btn-dark mr-1 mb-1" id="' + thisId + '" onclick="setDefaultFromToDateCalc(\'' + number + '\',\'' + month + '\')">' + monthName + ' ' + currentYear + '</button>'
$('#default-month-buttons').append(monthButton);
}
//=============================================================================
// Set month names
//=============================================================================
function setDefaultMonthName( month ) {
var monthName = '';
if ( month == '01') {
monthName = '<?php echo $reeft_month_01 ?>';
}
else if ( month == '02') {
monthName = '<?php echo $reeft_month_02 ?>';
}
else if ( month == '03') {
monthName = '<?php echo $reeft_month_03 ?>';
}
else if ( month == '04') {
monthName = '<?php echo $reeft_month_04 ?>';
}
else if ( month == '05') {
monthName = '<?php echo $reeft_month_05 ?>';
}
else if ( month == '06') {
monthName = '<?php echo $reeft_month_06 ?>';
}
else if ( month == '07') {
monthName = '<?php echo $reeft_month_07 ?>';
}
else if ( month == '08') {
monthName = '<?php echo $reeft_month_08 ?>';
}
else if ( month == '09') {
monthName = '<?php echo $reeft_month_09 ?>';
}
else if ( month == '10') {
monthName = '<?php echo $reeft_month_10 ?>';
}
else if ( month == '11') {
monthName = '<?php echo $reeft_month_11 ?>';
}
else if ( month == '12') {
monthName = '<?php echo $reeft_month_12 ?>';
}
else {
monthName = 'Unknown: ' + month;
}
return monthName;
}
//=============================================================================
// Set default from 7 to date
//=============================================================================
function getDefaultYearCalc( sub_month, month )
{
// Calcualte date intervals
var defaultFromDate = moment().subtract( parseInt(sub_month), 'month').format("YYYY-MM-01" );
var defaultToDate = moment().add(1, 'day').format("YYYY-MM-DD");
var defaultToDate = moment().subtract( parseInt(sub_month), 'month').endOf('month').format('YYYY-MM-DD');
var currentYear = moment(defaultFromDate).format('YYYY');
//console.log(defaultFromDate + ' ' + defaultToDate + ' ' + currentYear);
return currentYear;
}
//=============================================================================
// Set default from 7 to date
//=============================================================================
function setDefaultFromToDateCalc( sub_month, month )
{
// Calcualte date intervals
var defaultFromDate = moment().subtract( parseInt(sub_month), 'month').format("YYYY-MM-01" );
var defaultToDate = moment().add(1, 'day').format("YYYY-MM-DD");
var defaultToDate = moment().subtract( parseInt(sub_month), 'month').endOf('month').format('YYYY-MM-DD');
// Move to input fields
$('#input-fromdate').val( defaultFromDate );
$('#input-todate').val( defaultToDate );
$('#input-fromtime').val( '00:00' );
$('#input-totime').val( '23:59' );
var thisId = 'default-button-' + month;
$('.btn-default-date-interval').removeClass('btn-success').addClass('btn-dark');
$('#' + thisId).removeClass('btn-dark').addClass('btn-success');
// Click get button
//$('#button-call-import-log-overview').trigger('click');
$('#updateButton').trigger('click');
}
//=============================================================================
// Group search
//=============================================================================
function doGroupSearch( group )
{
$('#input-default-search-group').val( group );
$('#updateButton').trigger('click');
}
//=============================================================================
// Cust active search
//=============================================================================
function doActiveSearch( active )
{
$('#input-default-search-active').val( active );
$('#updateButton').trigger('click');
}
//=============================================================================
// Show more search fields
//=============================================================================
function showMoreSearchFields()
{
var input_showMoreSearchFields = $('#input-showMoreSearchFields').val();
// Show or not show?
if ( input_showMoreSearchFields == 'Y' ) {
$('#misc-1-search-fields').addClass('d-none');
$('#misc-2-search-fields').addClass('d-none');
$('#input-showMoreSearchFields').val('N');
$('#button-showMoreSearchFields').removeClass('btn-success').addClass('btn-primary').html('More...');
$('#input-fromdate').focus();
} else {
$('#misc-1-search-fields').removeClass('d-none');
$('#misc-2-search-fields').removeClass('d-none');
$('#input-showMoreSearchFields').val('Y');
$('#button-showMoreSearchFields').removeClass('btn-primary').addClass('btn-success').html('Less...');
$('#input-logType').focus();
}
}
//=============================================================================
// Restore search field
//=============================================================================
function restoreSearch( search_string )
{
$('#dt-search-0').val( search_string).focus().select();
}
//=============================================================================
// Show SQL
//=============================================================================
function showSQL()
{
$('#input-sql').text( sql );
$('#input-sql-col').removeClass('text-right').addClass('font-weight-bold mb-2');
$('#input-show-sql').val('Y');
}
//=============================================================================
// Show field names
//=============================================================================
function showFieldNames()
{
if ( $('#modal-input-show-field-names').val() == 'N' ) {
$('#modal-input-show-field-names').val('Y');
$('#button-show-hide-field-names').html('<?php echo $reeft_text0215 ?>').removeClass('btn-dark').addClass('btn-success');
$('#text-show-hide-field-names').removeClass('d-none');
$('.show-field-names-class').removeClass('d-none').addClass('text-info');
}
else if ( $('#modal-input-show-field-names').val() == 'Y' ) {
$('#modal-input-show-field-names').val('N');
$('#button-show-hide-field-names').html('<?php echo $reeft_text0216 ?>').removeClass('btn-success').addClass('btn-dark');
$('#text-show-hide-field-names').addClass('d-none');
$('.show-field-names-class').addClass('d-none').removeClass('text-info');
}
}
//=============================================================================
// Get customer data for the Dashboard
//=============================================================================
function getCustomerData()
{
var parmData = 'data=' + 'result'
+ '&mode=' + 'mode'
;
$.ajax({
url: "customer_maintain_dashboard_get.php",
type: "POST",
data: parmData,
dataType: "json",
cache: false,
})
.done(function( jsonData ) {
var recordsTotalActiveFormat = jsonData.header.recordsTotalActiveFormat;
var recordsTotalInactiveFormat = jsonData.header.recordsTotalInactiveFormat;
var recordsTotalFormat = jsonData.header.recordsTotalFormat;
$('#customer-menu-active').html( recordsTotalActiveFormat );
$('#customer-menu-inactive').html( recordsTotalInactiveFormat );
$('#button-select-cust-active-X').html( '<?php echo $reeft_text0260 ?> (' + recordsTotalFormat + ')' );
$('#button-select-cust-active-1').html( '<?php echo $reeft_text0006 ?> (' + recordsTotalActiveFormat + ')' );
$('#button-select-cust-active-0').html( '<?php echo $reeft_text0007 ?> (' + recordsTotalInactiveFormat + ')' );
})
.always(function( jsonData ) {
})
.fail(function( xhr, ajaxOptions, thrownError ) {
console.log('I am failed..');
console.log( xhr );
});
}
//=============================================================================
// Create active / incative buttons
//=============================================================================
function createActiveInactive()
{
var yesButton = '<button type="button" id="button-selectActiveInactive-yes" onclick="selectActiveInactive(\'1\')" class="btn btn-primary"><?php echo $reeft_YES ?></button>';
var noButton = '<button type="button" id="button-selectActiveInactive-no" onclick="selectActiveInactive(\'0\')" class="btn btn-primary"><?php echo $reeft_NO ?></button>';
$('#data-result-button-active-inactive').html( yesButton + ' ' + noButton );
}
//=============================================================================
// Create Fileformat export termination file buttons
//=============================================================================
function selectActiveInactive( inputData)
{
if ( inputData == '1' ) {
$('#modal-input-cust_active').val('1');
$('#button-selectActiveInactive-yes').removeClass('btn-primary').addClass('btn-success');
$('#button-selectActiveInactive-no').removeClass('btn-danger').addClass('btn-primary');
}
else if ( inputData == '0' ) {
$('#modal-input-cust_active').val('0');
$('#button-selectActiveInactive-no').removeClass('btn-primary').addClass('btn-danger');
$('#button-selectActiveInactive-yes').removeClass('btn-success').addClass('btn-primary');
}
// Load customer data - this will be set to N in bth dataChange and dataAdd after this fundtion is called
$('#input-load-customer-data').val('Y');
}
//=============================================================================
// Create extension button
//=============================================================================
function createExtension()
{
var DFT_VALID_EXTENSIONS = '<?php echo $DFT_VALID_EXTENSIONS ?>';
const arrayExtensions = DFT_VALID_EXTENSIONS.split('|');
var buttonHTMLextensions = '';
for (let i = 0; i < arrayExtensions.length; i++)
{
buttonHTMLextensions += '<button type="button" id="select-button-extension-id-modal-' + arrayExtensions[i] + '" class="btn btn-primary mr-1 button-extension--modal-class" onclick="selectExtension(\'' + arrayExtensions[i] + '\')">' + arrayExtensions[i] + '</button>'
}
//alert(buttonHTMLextensions)
$('#data-result-button-extension-modal').html(buttonHTMLextensions);
}
//=============================================================================
// Set extension
//=============================================================================
function selectExtension( inputExtension )
{
$('#modal-input-fileformat_ext_file').val( inputExtension );
var selectButtonLineID = 'select-button-extension-id-modal-' + inputExtension;
$('.button-extension--modal-class').removeClass('btn-success').addClass('btn-primary');
$('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success');
resetModalMessage();
}
//=============================================================================
// Create Fileformat export termination file buttons
//=============================================================================
function createExportterminationfile()
{
var yesButton = '<button type="button" id="button-selectExportterminationfile-yes" onclick="selectExportterminationfile(\'1\')" class="btn btn-primary"><?php echo $reeft_YES ?></button>';
var noButton = '<button type="button" id="button-selectExportterminationfile-no" onclick="selectExportterminationfile(\'0\')" class="btn btn-primary"><?php echo $reeft_NO ?></button>';
$('#data-result-button-fileformat_exportterminationfile-modal').html( yesButton + ' ' + noButton );
}
//=============================================================================
// Create Fileformat export termination file buttons
//=============================================================================
function selectExportterminationfile( inputData)
{
if ( inputData == '1' ) {
$('#modal-input-fileformat_exportterminationfile').val('1');
$('#button-selectExportterminationfile-yes').removeClass('btn-primary').addClass('btn-success');
$('#button-selectExportterminationfile-no').removeClass('btn-success').addClass('btn-primary');
}
if ( inputData == '0' ) {
$('#modal-input-fileformat_exportterminationfile').val('0');
$('#button-selectExportterminationfile-no').removeClass('btn-primary').addClass('btn-success');
$('#button-selectExportterminationfile-yes').removeClass('btn-success').addClass('btn-primary');
}
resetModalMessage();
}
//=============================================================================
// Create fileformat numberdecimal separator button
//=============================================================================
function createNumberDecimalSeparator()
{
var DFT_VALID_DECIMAL_SEPERATOR = '<?php echo $DFT_VALID_DECIMAL_SEPERATOR ?>';
const wrkArray = DFT_VALID_DECIMAL_SEPERATOR.split('|');
var buttonHTML = '';
for (let i = 0; i < wrkArray.length; i++)
{
buttonHTML += '<button type="button" id="select-button-numberdecimalseparator-id-modal-' + i + '" class="btn btn-primary mr-1 fileformat_numberdecimalseparator-class" onclick="selectNumberDecimalSeparator(\'' + wrkArray[i] + '\',\'' + i + '\')">' + wrkArray[i] + '</button>'
}
//alert(buttonHTMLextensions)
$('#data-result-button-fileformat_numberdecimalseparator-modal').html(buttonHTML);
}
//=============================================================================
// Set extension
//=============================================================================
function selectNumberDecimalSeparator( inputData, inputCounter )
{
// Fucking junk - but , and . does not work as part of id names
if ( inputCounter == '' ) {
if ( inputData == ',' ) inputCounter = 0;
if ( inputData == '.' ) inputCounter = 1;
}
$('#modal-input-fileformat_numberdecimalseparator').val( inputData );
var selectButtonLineID = 'select-button-numberdecimalseparator-id-modal-' + inputCounter;
$('.fileformat_numberdecimalseparator-class').removeClass('btn-success').addClass('btn-primary');
$('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success');
// Place cursor in next field?
//$('#modal-input-fileformat_exportterminationfile').trigger('focus');
resetModalMessage();
}
//=============================================================================
// Create fileformat separator button => note % is splitter
//=============================================================================
function createFileFormatSeparator()
{
var DFT_VALID_DECIMAL_SEPERATOR = '<?php echo $DFT_VALID_FILEFORMAT_SEPERATOR ?>';
const wrkArray = DFT_VALID_DECIMAL_SEPERATOR.split('%');
var buttonHTML = '';
for (let i = 0; i < wrkArray.length; i++)
{
buttonHTML += '<button type="button" id="select-button-fileformat_separator-id-modal-' + i + '" class="btn btn-primary mr-1 fileformat_separator-class" onclick="selectFileFormatSeparator(\'' + wrkArray[i] + '\',\'' + i + '\')">' + wrkArray[i] + '</button>'
}
$('#data-result-button-fileformat_separator-modal').html(buttonHTML);
}
//=============================================================================
// Set extension
//=============================================================================
function selectFileFormatSeparator( inputData, inputCounter )
{
// Fucking junk - but , and . does not work as part of id names
if ( inputCounter == '' ) {
if ( inputData == ';' ) inputCounter = 0;
if ( inputData == ',' ) inputCounter = 1;
if ( inputData == '|' ) inputCounter = 2;
}
$('#modal-input-fileformat_separator').val( inputData );
var selectButtonLineID = 'select-button-fileformat_separator-id-modal-' + inputCounter;
$('.fileformat_separator-class').removeClass('btn-success').addClass('btn-primary');
$('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success');
// Place cursor in next field?
//$('#modal-input-fileformat_exportterminationfile').trigger('focus');
resetModalMessage();
}
//=============================================================================
// Create code page buttons
//=============================================================================
function createCodePage()
{
var DFT_VALID_CODE_PAGE = '<?php echo $DFT_VALID_CODE_PAGE ?>';
const wrkArray = DFT_VALID_CODE_PAGE.split('|');
var buttonHTML = '';
for (let i = 0; i < wrkArray.length; i++)
{
buttonHTML += '<button type="button" id="select-button-modal-input-fileformat_codepage-id-modal-' + wrkArray[i] + '" class="btn btn-primary mr-1 fileformat_codepage-class" onclick="selectCodePage(\'' + wrkArray[i] + '\')">' + wrkArray[i] + '</button>'
}
$('#data-result-button-code-page-modal').html(buttonHTML);
}
//=============================================================================
// Set code page
//=============================================================================
function selectCodePage( inputData )
{
$('#modal-input-fileformat_codepage').val( inputData );
var selectButtonLineID = 'select-button-modal-input-fileformat_codepage-id-modal-' + inputData;
$('.fileformat_codepage-class').removeClass('btn-success').addClass('btn-primary');
$('#' + selectButtonLineID).removeClass('btn-primary').addClass('btn-success');
// Place cursor in next field?
//$('#modal-input-fileformat_exportterminationfile').trigger('focus');
resetModalMessage();
}
//=============================================================================
// Create some dir path
//=============================================================================
function createDefaultDirPath()
{
var input_cust_number = $('#modal-input-cust_number').val();
if ( input_cust_number != '' ) {
$('#modal-input-input_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_INPUT_DIR );
$('#modal-input-output_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_OUTPUT_DIR );
$('#modal-input-done_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_DONE_DIR );
$('#modal-input-log_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_LOG_DIR );
$('#modal-input-export_done_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_EXPORT_DONE_DIR );
$('#modal-input-error_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_ERROR_DIR );
$('#modal-input-program_dir').val( DFT_DIR_PATH + '/' + input_cust_number + '/' + DFT_PROGRAM_DIR );
} else {
$('#modal-input-input_dir').val('');
$('#modal-input-output_dir').val('');
$('#modal-input-done_dir').val('');
$('#modal-input-log_dir').val('');
$('#modal-input-export_done_dir').val('');
$('#modal-input-error_dir').val('');
$('#modal-input-program_dir').val('');
}
}
//=============================================================================
// Reset some dir path
//=============================================================================
function resetDefaultDirPath()
{
$('#modal-input-input_dir').val('');
$('#modal-input-output_dir').val('');
$('#modal-input-done_dir').val('');
$('#modal-input-log_dir').val('');
$('#modal-input-export_done_dir').val('');
$('#modal-input-error_dir').val('');
$('#modal-input-program_dir').val('');
}
//=============================================================================
// Validate input
// only a-z, 0-9 and _ and ,
// Remove blanks
// String cannot start with . or _
//=============================================================================
function cleanAndValidate( input_string )
{
const original = input_string;
// Remove invalid characters (keep a-zA-Z0-9._ only)
let cleaned = original.replace(/[^a-zA-Z0-9._]/g, '');
// Remove leading/trailing underscore or dot
cleaned = cleaned.replace(/^[_\.]+|[_\.]+$/g, '');
// Remove consecutive _ or . (optional)
cleaned = cleaned.replace(/[_.]{2,}/g, '_');
// Validation happens on original (not cleaned) input
const isValid = /^[a-zA-Z0-9._]+$/.test(original) &&
!/^[_\.]/.test(original) &&
!/[_\.]$/.test(original) &&
!/[_.]{2,}/.test(original);
return isValid;
}
//=============================================================================
// Validate input
// only a-z, 0-9 and _ and ,
// Remove blanks
// String cannot start with . or _
//=============================================================================
function cleanAndValidateX( input_string )
{
const original = input_string;
// Remove invalid characters (keep a-zA-Z0-9._ only)
let cleaned = original.replace(/[^a-zA-Z0-9._]/g, '');
// Remove leading/trailing underscore or dot
cleaned = cleaned.replace(/^[_\.]+|[_\.]+$/g, '');
// Remove consecutive _ or . (optional)
cleaned = cleaned.replace(/[_.]{2,}/g, '_');
// Validation happens on original (not cleaned) input
const isValid = /^[a-zA-Z0-9._]+$/.test(original) &&
!/^[_\.]/.test(original) &&
!/[_\.]$/.test(original) &&
!/[_.]{2,}/.test(original);
return { cleaned, isValid };
}
//=============================================================================
// Work with dirs
//=============================================================================
function showDirWorkPlace()
{
if ( $('#main-modal-dir-work-place').hasClass('d-none') ) {
// Check content of fields
// if ( dataSave('*JUST_CHECK') === false ) {
// return;
// }
var work_cust_number = $('#modal-input-cust_number').val();
var work_cust_name = $('#modal-input-cust_name').val();
var work_company_logo_url = $('#modal-input-company_logo_url').val();
if ( work_company_logo_url != '' ) {
work_company_logo_url_text = '<img class="img-fluid" style="height:40px" src="' + work_company_logo_url + '">';
} else {
work_company_logo_url_text = '';
}
// Show customer information
$('#main-modal-dir-work-place-customer-information').html(work_cust_number + ' - ' + work_cust_name);
$('#main-modal-dir-work-place-logo-information').html(work_company_logo_url_text);
var work_input_dir = $('#modal-input-input_dir').val();
var work_output_dir = $('#modal-input-output_dir').val();
var work_done_dir = $('#modal-input-done_dir').val();
var work_error_dir = $('#modal-input-error_dir').val();
var work_log_dir = $('#modal-input-log_dir').val();
var work_export_done_dir = $('#modal-input-export_done_dir').val();
var work_program_dir = $('#modal-input-program_dir').val();
var work_input_dir_org = $('#modal-input-input_dir_org').val();
var work_output_dir_org = $('#modal-input-output_dir_org').val();
var work_done_dir_org = $('#modal-input-done_dir_org').val();
var work_error_dir_org = $('#modal-input-error_dir_org').val();
var work_log_dir_org = $('#modal-input-log_dir_org').val();
var work_export_done_dir_org = $('#modal-input-export_done_dir_org').val();
var work_program_dir_org = $('#modal-input-program_dir_org').val();
// Reset create dir button found checker
$('#input-at-least-one-button-found').val('N');
// If customer already exists - foreget about the button creation
if ( $('#input-customer-already-exists').val() != 'Y' )
{
// Check if dir exists
checkDir( work_input_dir,'input_dir',work_input_dir_org );
checkDir( work_output_dir,'output_dir',work_output_dir_org );
checkDir( work_done_dir,'done_dir',work_done_dir_org );
checkDir( work_error_dir, 'error_dir',work_error_dir_org );
checkDir( work_log_dir, 'log_dir',work_log_dir_org );
checkDir( work_export_done_dir, 'export_done_dir',work_export_done_dir_org );
checkDir( work_program_dir, 'program_dir',work_program_dir_org );
$('#main-modal-input-fields').addClass('d-none');
$('#main-modal-dir-work-place').removeClass('d-none');
$('#workdir-modal-input-input_dir').html( work_input_dir );
$('#workdir-modal-input-output_dir').html( work_output_dir );
$('#workdir-modal-input-done_dir').html( work_done_dir );
$('#workdir-modal-input-error_dir').html( work_error_dir );
$('#workdir-modal-input-log_dir').html( work_log_dir );
$('#workdir-modal-input-export_done_dir').html( work_export_done_dir );
$('#workdir-modal-input-program_dir').html( work_program_dir );
}
// Animate
animateCSS('#main-modal-dir-work-place', 'slideInRight');
$('#workdir-button-create-all-dirs').prop('disabled',false);
$('#input-work-place-shown').val('*DIRS');
$('#button-show-dir-work-place').html('<?php echo $reeft_text0207 ?>')
// Get modal height and change it
var m_h = $('#modal-size-height').val();
$('#main-modal-dir-work-place').css('height', m_h)
} else {
$('#input-work-place-shown').val('*FIELDS');
$('#main-modal-input-fields').removeClass('d-none');
$('#main-modal-dir-work-place').addClass('d-none');
// Animate
animateCSS('#main-modal-input-fields', 'slideInLeft');
$('#button-show-dir-work-place').html('<?php echo $reeft_text0208 ?>')
}
}
//=============================================================================
// Check dir
//=============================================================================
function checkDir( input_string, input_id, input_dir_org )
{
var parmData = 'input_string=' + input_string;
;
$.ajax({
url: "does_it_exist.php",
type: "GET",
data: parmData,
dataType: "json",
cache: false,
})
.done(function( jsonData ) {
var returnCode = jsonData.header.returnCode;
var returnMsg = jsonData.header.returnMsg;
var entries_found = jsonData.header.entries_found;
var input_exists = jsonData.header.input_exists;
var id01 = 'workdir-modal-input-' + input_id + '-exists';
var id02 = 'workdir-modal-input-' + input_id + '-view';
var id03 = 'workdir-modal-input-' + input_id + '-create-dir';
var id04 = 'workdir-modal-button-' + input_id + '-create-dir';
if ( input_exists == 'Y' ) {
$('#' + id01 ).html('<i class="text-success fa-solid fa-1x fa-circle-check"></i>');
$('#' + id02 ).html('<span style="cursor: pointer" title="<?php echo $reeft_text0195 ?>" onclick="viewDirContent())"><i class="text-success fa-solid fa-eye"></i></span>');
$('#' + id03 ).html('');
} else {
$('#' + id01 ).html('<i class="text-danger fa-solid fa-ban"></i>');
$('#' + id02 ).html('<span style="cursor: not-allowed"><i class="text-danger fa-solid fa-eye-slash"></i></span>');
// Check if there is a library?
if ( input_string != '' ) {
$('#' + id03 ).html('<button type="button" id="' + id04 + '" class="create-dir-all btn btn-dark" onclick="createDir(\'' + input_string + '\',\'' + input_dir_org + '\',\'' + id01 + '\',\'' + id02 + '\',\'' + id03 + '\',\'' + id04 + '\')"><?php echo $reeft_button_create_dir ?></button>' );
} else {
$('#' + id03 ).html('*ERROR' );
}
$('#input-at-least-one-button-found').val('Y');
$('#workdir-button-create-all-dirs').prop("disabled", false);
}
})
.always(function( jsonData ) {
})
.fail(function( xhr, ajaxOptions, thrownError ) {
console.log('I am failed..');
console.log( xhr );
});
}
//=============================================================================
// Create all dir
//=============================================================================
function createDirsAll()
{
$('.create-dir-all').click();
$('#workdir-button-create-all-dirs').prop('disabled',true);
}
//=============================================================================
// Create dir
//=============================================================================
function createDir( input_path, input_dir, id01, id02, id03, id04 )
{
// Get tinyfilemanager dir
var tinyfilemanager_dir = DFT_DIR_PATH + '/' + $('#modal-input-cust_number').val();
var base_dir = DFT_DIR_PATH;
var parmData = 'input_string=' + input_path
+ '&input_dir=' + input_dir
+ '&input_tinyfilemanager_dir=' + tinyfilemanager_dir
;
$.ajax({
url: "create_dir.php",
type: "GET",
data: parmData,
dataType: "json",
cache: false,
})
.done(function( jsonData ) {
var returnCode = jsonData.header.returnCode;
var returnMsg = jsonData.header.returnMsg;
var entries_found = jsonData.header.entries_found;
var input_exists = jsonData.header.input_exists;
// Make button disabled
if ( returnCode == '00' ) {
$('#' + id01 ).html('<i class="text-success fa-solid fa-1x fa-circle-check"></i>');
$('#' + id02 ).html('<span style="cursor: pointer" title="<?php echo $reeft_text0195 ?>" onclick="viewDirContent())"><i class="text-success fa-solid fa-eye"></i></span>');
$('#' + id04 ).prop('disabled',true);
// Show "Change message"
$('#modal-data-not-saved-warning-wrapper').removeClass('d-none');
$('#modal-data-not-saved-warning').html('<?php echo $reeft_text0191 ?>' );
}
})
.always(function( jsonData ) {
})
.fail(function( xhr, ajaxOptions, thrownError ) {
console.log('I am failed..');
console.log( xhr );
});
}
//=============================================================================
// Trigger blue
//=============================================================================
function triggerBlur() {
$('.check-input-in-modal').trigger( 'blur' );
// Set change checker
$('#input-change-made-somewhere').val( 'Y' );
// Make save button green only if *update
if ( $('#input-mode').val() == '*update' ) {
$('#modal-save-button').removeClass('btn-primary').addClass('btn-success');
$('#modal-save-button-only').removeClass('btn-primary').addClass('btn-success');
}
// Show "Change message" only update
if ( $('#input-mode').val() == '*update' ) {
$('#modal-data-not-saved-warning-wrapper').removeClass('d-none');
$('#modal-data-not-saved-warning').html('<?php echo $reeft_text0190 ?>' );
}
// Reset modal message
resetModalMessage();
}
//=============================================================================
// Close modal
//=============================================================================
function closeModal( modalToClose)
{
$('#' + modalToClose ).modal( 'hide' );
}
//=============================================================================
// Do something
//=============================================================================
function doSomeThingAfterAnimationEnds() {
if ( $('#input-work-place-shown').val() == '*DIRS') {
// No create dirs created, hide ALL button
if ( $('#input-at-least-one-button-found').val() == 'N') {
$('#workdir-button-create-all-dirs').prop("disabled", true);
} else {
$('#workdir-button-create-all-dirs').prop("disabled", false);
}
}
//console.log('Do something' + moment().format('YYYY-MM-DD HH:mm:ss'));
// Get modal height
var modalWidth = $("#customer_maintainModal").width();
var modalHeight = $("#customer_maintainModal").height();
// Save modal size
$('#modal-size-width').val( modalWidth );
$('#modal-size-height').val( modalHeight);
}
//=============================================================================
// Set clock
//=============================================================================
function updateClock() {
var currentTime = moment().format('YYYY-MM-DD HH:mm:ss');
currentTime = REEFT_format_date( currentTime, DFT_DATE_DISPLAY_FORMAT )
$('#input-current-date').val( moment().format('YYYY-MM-DD') );
$('#input-current-time').val( moment().format('HH:mm:ss') );
$('#current-time').html( currentTime );
// If add mode update date/time in modal window
if ( $('#input-mode').val() == '*add' )
{
if ( $('#input-is-modal-open').val() == 'Y' )
{
$('#modal-input-create_timestamp').val( $('#input-current-date').val() + ' ' + $('#input-current-time').val() );
}
}
}
//=============================================================================
// jQuery - Ready
//=============================================================================
$(document).ready(function()
{
//-----------------------------------------------------------------------
// Start the clock
//-----------------------------------------------------------------------
updateClock();
setInterval(function() {
updateClock();
}, 1000);
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// Init orginal dir fields
//-----------------------------------------------------------------------
$('#modal-input-program_dir_org').val('<?php echo $DFT_PROGRAM_DIR ?>');
$('#modal-input-input_dir_org').val('<?php echo $DFT_INPUT_DIR ?>');
$('#modal-input-output_dir_org').val('<?php echo $DFT_OUTPUT_DIR ?>');
$('#modal-input-error_dir_org').val('<?php echo $DFT_ERROR_DIR ?>');
$('#modal-input-done_dir_org').val('<?php echo $DFT_DONE_DIR ?>');
$('#modal-input-log_dir_org').val('<?php echo $DFT_LOG_DIR ?>');
$('#modal-input-export_done_dir_org').val('<?php echo $DFT_EXPORT_DONE_DIR ?>');
//-----------------------------------------------------------------------
// Delay keyup checker
//-----------------------------------------------------------------------
var delay = (function () {
var timer = 0;
return function (callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})()
// Check field content for class check-input-in-modal (cust_number for example)
// $('.check-input-in-modal').on('keyup blur', function (event) {
// const inputEl = $(this);
// const val = inputEl.val();
// const { cleaned, isValid } = cleanAndValidate(val);
// console.log(val + ' ' + isValid + ' ' + event.type);
// // On blur: clean and write back value
// if (event.type === 'blur') {
// inputEl.val(cleaned);
// if ( $('#input-mode').val() == '*add' ) {
// checkDataExists();
// }
// }
// // Show or hide error message
// if ( cleaned != '' ) {
// if ( isValid === true ) {
// $('#modal-message').html('<?php echo $reeft_text0206 ?>')
// // Create dir path
// createDefaultDirPath( cleaned );
// } else {
// $('#modal-message').html('<?php echo $reeft_error0014 ?>')
// }
// }
// });
// If a field is changed set flag for update
$('.check-for-input-change-class').on('keyup change', function (event) {
const inputEl = $(this);
const val = inputEl.val();
$('#input-change-made-somewhere').val( 'Y' );
// Make save button green only if *update
if ( $('#input-mode').val() == '*update' ) {
$('#modal-save-button').removeClass('btn-primary').addClass('btn-success');
$('#modal-save-button-only').removeClass('btn-primary').addClass('btn-success');
// Show "Change message"
$('#modal-data-not-saved-warning-wrapper').removeClass('d-none');
$('#modal-data-not-saved-warning').html('<?php echo $reeft_text0190 ?>' );
}
});
// Cust group trigger
var eventList = ["change", "keyup", "paste"];
var number = document.querySelector('#modal-input-cust_group')
for(event of eventList) {
number.addEventListener(event, event => {
let input_value = event.target.value;
$('.select-button-line-modal').removeClass('btn-success').addClass('btn-primary');
$('#select-button-line-id-modal-' + input_value).removeClass('btn-primary').addClass('btn-success');
console.log( input_value );
});
}
//-----------------------------------------------------------------------
// Check exists
//-----------------------------------------------------------------------
let $filter01 = $('#modal-input-cust_number');
$filter01.on('keyup', function () {
delay(function () {
var inputValue = $('#modal-input-cust_number').val();
console.log(inputValue)
if ( inputValue != '') {
console.log('this will hit, once user has not typed for 1 second ' + inputValue );
checkDataExists();
} else {
resetDefaultDirPath();
}
}, 0500);
});
// When opening modal
$('#customer_maintainModal').on('shown.bs.modal', function () {
$('#input-is-modal-open').val('Y');
if ( $('#input-mode').val() == '*add' ) {
$('#modal-input-cust_number').focus();
}
if ( $('#input-mode').val() == '*update' ) {
$('#modal-input-cust_name').focus();
}
// Get modal height
var modalWidth = $("#customer_maintainModal").width();
var modalHeight = $("#customer_maintainModal").height();
// Save modal size
$('#modal-size-width').val( modalWidth );
$('#modal-size-height').val( modalHeight);
})
// When closing modal
$('#customer_maintainModal').on('hidden.bs.modal', function (e) {
resetModalInputFields();
$('#input-is-modal-open').val('N');
})
// Hide fields names on modal as default
$('#modal-input-show-field-names').val('N');
// Get come customer data stats
getCustomerData();
// Create select buttons
createActiveInactive();
createExtension();
createExportterminationfile();
createNumberDecimalSeparator();
createFileFormatSeparator();
createCodePage();
$('#input-default-search-active').val('');
// Do not show deleted
$('#input-show-deleted').val('Y');
$('#input-timeStamp').val('<?php echo $timeStamp ?>');
// $('#input-fromdate').val('<?php echo $fromdate ?>');
// $('#input-fromtime').val('<?php echo $fromtime ?>');
// $('#input-todate').val('<?php echo $todate ?>');
// $('#input-totime').val('<?php echo $totime ?>');
//$('#delay-marker-id').html('<i id="delay-marker-icon-id" class="text-success fa-solid fa-circle"></i>');
// Get data done by datatables
setDataTables();
//-----------------------------------------------------------------------
// Set default from/to date
//-----------------------------------------------------------------------
//setDefaultFromToDate('2');
setDefaultMonths();
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// Set font awesome icon type
//-----------------------------------------------------------------------
// Value is from config/config.php
var iconType = '<?php echo $DFT_SET_FONT_AWESOME_ICON_TYPE ?>';
setFontAwesomeIconType( iconType );
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// Extendd search field
//-----------------------------------------------------------------------
$('#dt-search-0').on('keyup', function() {
//$('#dt-search-0').addClass('extend-search-field');
});
// DataTable search delay
//$('#REEFTvisual_data_wrapper .dt-input')
//$('#REEFTvisual_data_wrapper .dataTables_filter input')
$('#REEFTvisual_data_wrapper #dt-search-0')
// .unbind() // overrule normal behavior
// .bind('keyup', function(e){
// $('#delay-marker-icon-id').removeClass('text-success').addClass('text-danger');
// //inputValue = $('.dataTables_filter input').val();
// inputValue = $('#dt-search-0').val();
// var currSearchValue = $('#input-search-line').val();
// if (inputValue != currSearchValue) {
// $('#input-search-line').val( inputValue );
// //If enter or delete we update immediately, consider to add backspace=8 and delete=46 also
// const keyList = [13];
// if (keyList.includes(e.keyCode)) {
// // console.log('immediately ' + inputValue );
// $('#delay-marker-icon-id').removeClass('text-danger').addClass('text-success');
// console.log('1 ' + inputValue)
// thisGlobalTableData.search(inputValue).draw(); // fire in the hole
// } else {
// delay(function () {
// //console.log('this will hit, once user has not typed for 1 second ' + inputValue );
// $('#delay-marker-icon-id').removeClass('text-danger').addClass('text-success');
// console.log('2 ' + inputValue)
// thisGlobalTableData.search(inputValue).draw(); // fire in the hole
// }, 0800);
// }
// }
// });
//=========================================================================================================
// Set color picker - TEXT
//
// Create HEX value (https://en.wikipedia.org/wiki/Web_colors)
// var hexValueColor = color.toHexString();
//
// Create RGB (https://en.wikipedia.org/wiki/RGB_color_model)
// hexcolor = hexcolor.replace("#", "");
// var r = parseInt(hexcolor.substr(0,2),16);
// var g = parseInt(hexcolor.substr(2,2),16);
// var b = parseInt(hexcolor.substr(4,2),16);
// var yiq = ((r*299)+(g*587)+(b*114))/1000;
//
//
// Create YIQ (https://en.wikipedia.org/wiki/YIQ)
// if ( yiq >= 128) {
// var textColor = 'black';
// } else {
// var textColor = 'white';
// }
//
// console.log('change: ' + hexcolor + ' ' + hexValueColor + ' ' + yiq + ' ' + r + ' ' + g + ' ' + b );
//
//=========================================================================================================
$(".text-color-palette").spectrum({
showInitial: true,
showInput: true,
chooseText: "Vælg farve",
cancelText: "Annuller",
preferredFormat: "hex",
color: "#000",
showPalette: true,
flat: false,
palette: [
["#000","#444","#666","#999","#ccc","#eee","#f3f3f3","#fff"],
["#f00","#f90","#ff0","#0f0","#0ff","#00f","#90f","#f0f"],
["#f4cccc","#fce5cd","#fff2cc","#d9ead3","#d0e0e3","#cfe2f3","#d9d2e9","#ead1dc"],
["#ea9999","#f9cb9c","#ffe599","#b6d7a8","#a2c4c9","#9fc5e8","#b4a7d6","#d5a6bd"],
["#e06666","#f6b26b","#ffd966","#93c47d","#76a5af","#6fa8dc","#8e7cc3","#c27ba0"],
["#c00","#e69138","#f1c232","#6aa84f","#45818e","#3d85c6","#674ea7","#a64d79"],
["#900","#b45f06","#bf9000","#38761d","#134f5c","#0b5394","#351c75","#741b47"],
["#600","#783f04","#7f6000","#274e13","#0c343d","#073763","#20124d","#4c1130"]
],
// Called as the original input changes. Only happens when the input is closed or the 'Choose' button is clicked.
change: function(color) {
// Get hex color
var hexValueColor = color.toHexString();
},
move: function(color) {
// Get hex color
var hexValueColor = color.toHexString();
},
show: function(color) {
$('#input-current-color-picker').val( this.id );
// Get hex color
var hexValueColor = color.toHexString();
},
hide: function(color) {
// Get hex color
var hexValueColor = color.toHexString();
}
});
//-----------------------------------------------------------------------
// Event listener for the update button
//-----------------------------------------------------------------------
// $('#updateButton').on('click', function() {
// // Trigger a redraw of the table
// thisGlobalTableData.draw();
// });
//-----------------------------------------------------------------------
// Bind the scroll to an element - controls lazy scroll
//-----------------------------------------------------------------------
//$('#modal-ifs-list-data-result').bind('scroll',chk_scroll);
//-----------------------------------------------------------------------
// Event listener for the update button
//-----------------------------------------------------------------------
$('#updateButton').on('click', function() {
// Update input variables
input_fromdate = $('#input-fromdate').val();
input_fromtime = $('#input-fromtime').val();
input_todate = $('#input-todate').val();
input_totime = $('#input-totime').val();
input_logType = $('#input-logType').val();
input_logCode = $('#input-logCode').val();
input_logPgm = $('#input-logPgm').val();
input_clientID = $('#input-clientID').val();
input_dataLine = $('#input-dataLine').val();
input_group_search = $('#input-default-search-group').val();
input_active_search = $('#input-default-search-active').val();
// Trigger a redraw of the table
thisGlobalTableData.draw();
});
//-----------------------------------------------------------------------
// Set short cuts
//-----------------------------------------------------------------------
// If add d-none class, do not add shortcut
if ( GLOBAL_ADD_ALLOWED == 'Y' ) {
shortcut.add("Alt+F6",function() {
$('#add-button').click();
});
// Show add button
$('#add-button').removeClass('d-none');
}
// All
shortcut.add("Alt+1",function() {
$('#button-select-cust-active-X').click();
});
// Active
shortcut.add("Alt+2",function() {
$('#button-select-cust-active-1').click();
});
// Inactive
shortcut.add("Alt+3",function() {
$('#button-select-cust-active-0').click();
});
// Show hide field names
shortcut.add("Alt+F2",function() {
if ( $('#input-is-modal-open').val() == 'Y' ) {
$('#button-show-hide-field-names').click();
}
});
// Show dir work place
shortcut.add("Alt+F3",function() {
if ( $('#input-is-modal-open').val() == 'Y' ) {
showDirWorkPlace();
}
});
// // Close window
// shortcut.add("Shift+Esc",function() {
// $('#button-close').click();
// });
// Make sure scroll is active when closeing the previevwer
// $('#import_done_listIFSfileModal').on("hidden.bs.modal", function (e) { //fire on closing modal box
// if ($('.modal:visible').length) { // check whether parent modal is opend after child modal close
// $('body').addClass('modal-open'); // if open mean length is 1 then add a bootstrap css class to body of the page
// // Remove iframe data...
// //$('#modal-preview-iframe').html('');
// }
// });
});
// -->
</script>
</head>
<body>
<div class="container-fluid mt-2 pl-3 pr-3">
<div id="modal-size"></div>
<input type="text" class="d-none" id="modal-size-width">
<input type="text" class="d-none" id="modal-size-height">
<input type="text" class="d-none" id="input-change-made-somewhere">
<input type="text" class="d-none" id="input-at-least-one-button-found">
<input type="text" class="d-none" id="input-work-place-shown">
...
<input type="text" class="d-none" id="input-customer-already-exists">
<input type="text" class="d-none" id="input-mode">
<input type="text" class="d-none" id="input-is-modal-open">
<input type="text" class="d-none" id="input-load-customer-data">
<input type="text" class="d-none" id="myInput">
<input type="text" class="d-none" id="input-default-search-group">
<input type="text" class="d-none" id="input-default-search-active">
<input type="text" class="d-none" id="modal-input-show-field-names">
<input type="text" class="d-none" id="input-show-sql">
<input type="text" class="d-none" id="input-showMoreSearchFields">
<input type="text" class="d-none" id="input-current-date">
<input type="text" class="d-none" id="input-current-time">
<input type="text" class="d-none" id="input-show-deleted" >
<input type="text" class="d-none" id="input-search-line">
<input type="text" class="d-none" id="input-filter-line">
<input type="text" class="d-none" id="input-rpyOffSet">
<input type="text" class="d-none" id="input-rpyTotalRecordsFound">
<input type="text" class="d-none" id="input-rpyTotalPages">
<!--<input type="text" class="d-none" id="input-rpyPageSize">-->
<div class="row">
<div class="col-2">
<img src="images/customer-logo.png" alt="Customer Logo">
</div>
<div class="col-8 text-center <?php echo $DFT_CLOCK_SIZE ?>">
<i class="font-awesome-pseudo-class fa-thin fa-clock"></i> <span id="current-time"><?php echo date('d-m-Y h:i:s') ?></span>
</div>
<div class="col-2 text-right">
<div class="btn btn-primary mb-1" onclick="loadPage('menu_customer.php','','','')" title="<?php echo $reeft_go_to_my_dear_home ?>"><i class="font-awesome-pseudo-class fa-2x fa-thin fa-home"></i></div>
<div class="d-none">
<div class="btn btn-primary mb-1 d-none d-xl-inline-block" onclick="loadPage('menu_main.php','','','')" title="<?php echo $reeft_go_to_my_dear_home_03 ?>"><i class="font-awesome-pseudo-class fa-2x fa-thin fa-fort"></i></div>
<div class="btn btn-danger mb-1 d-none d-lg-inline-block" onclick="signoff()" title="<?php echo $reeft_go_to_my_dear_home_02 ?>"><i class="font-awesome-pseudo-class fa-thin fa-2x fa-right-from-bracket"></i></div>
</div>
</div>
</div>
<div class="row">
<div class="col-12 text-center">
<div id="data-company-information"></div>
</div>
</div>
<div class="card mt-2">
<div class="card-header text-muted">
<div class="row mt-2">
<div class="col-4 h4">
<i class="font-awesome-pseudo-class fa-thin fa-people"></i> <?php echo "$reeft_text0138"; ?>
</div>
<div class="col-4 text-center">
<div id="working-message-text"></div>
</div>
<div class="col-4 text-right font-weight-bold">
<div class="row d-none">
<div class="col text-right" style="font-size:0.9em">
<?php echo $reeft_text0061 ?> : <span id="text-total-records-found">...</span><br>
<?php echo $reeft_text0259 ?> : <span id="customer-menu-active">...</span><br>
<?php echo $reeft_text0258 ?> : <span id="customer-menu-inactive">...</span><br>
</div>
</div>
</div>
</div>
</div>
<div class="card-body">
<!-- Message if screen is not wide enough -->
<div class="container-fluid mt-2 mb-4 d-block d-lg-none">
<div id="general-message-top" class="border border-danger rounded p-2 text-danger font-weight-boldx"><?php echo $reeft_error0040a ?></div>
</div>
<!-- Message if screen is not wide enough -->
<!-- SQL statement -->
<div id="sql-wrapper" class="d-none">
<div class="d-none d-lg-block">
<div class="row mb-2">
<div id="input-sql-col" class="col-12 border p-1 text-right">
<div id="input-sql" onclick="showSQL()"><i class="fa-solid fa-code"></i></div>
</div>
</div>
</div>
</div>
<!-- Group lines found -->
<div class="d-none d-lg-block">
<div class="row mb-2">
<div class="col-8 p-1">
<div id="data-result-button-group"></div>
</div>
<div class="col-4 p-1 text-right">
<button style="width:120px" title="Shortcut: Alt+1" class="btn btn-sm btn-dark mb-1 active-search-button-class" onclick="doActiveSearch('')" id="button-select-cust-active-X"><?php echo $reeft_text0260 ?></button>
<button style="width:120px" title="Shortcut: Alt+2" class="btn btn-sm btn-dark mb-1 active-search-button-class" onclick="doActiveSearch('1')" id="button-select-cust-active-1"><?php echo $reeft_text0006 ?></button>
<button style="width:120px" title="Shortcut: Alt+3" class="btn btn-sm btn-dark mb-1 active-search-button-class" onclick="doActiveSearch('0')" id="button-select-cust-active-0"><?php echo $reeft_text0007 ?></button>
</div>
</div>
</div>
<!-- From / to date wrapper start -->
<div id="from-to-date-wrapper" class="d-none">
<div class="row mb-1">
<div class="col text-left">
<div class="d-noneX" id="default-month-buttons"></div>
</div>
<div class="col text-right">
<button id="button-showMoreSearchFields" style="width:100px" onclick="showMoreSearchFields()" class="btn btn-primary btn-sm">More...</button>
</div>
</div>
<div class="row mb-1">
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-4 col-xs-4 mt-1">
<div class="row">
<div class="col">
<small><?php echo $reeft_text0121 ?></small>
</div>
</div>
<div class="row">
<div class="col mb-1">
<input id="input-fromdate" type="date" class="form-control">
</div>
<div class="col">
<input id="input-fromtime" type="time" class="form-control">
</div>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-4 col-xs-4 mt-1">
<div class="row">
<div class="col">
<small><?php echo $reeft_text0122 ?></small>
</div>
</div>
<div class="row">
<div class="col mb-1">
<input id="input-todate" type="date" class="form-control">
</div>
<div class="col">
<input id="input-totime" type="time" class="form-control">
</div>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-4 col-xs-4 mt-1">
<div class="row">
<div class="col">
<small> </small>
</div>
</div>
<div class="row">
<div class="col mb-1">
<button type="button" class="btn btn-primary mb-1" id="updateButton"><?php echo $reeft_button_get_data_icon2 ?></button>
<button type="button" class="btn btn-primary mb-1" onclick="getData('*RESET')"><?php echo $reeft_button_order_reset01_icon ?></button>
</div>
</div>
</div>
</div>
</div>
<!-- From / to date wrapper end -->
<!-- Misc 1 search fields start -->
<div id="misc-1-search-fields" class="d-none">
<div class="row mb-1">
<div class="col-xl-2 col-lg-2 col-md-3 col-sm-4 col-xs-4 mt-1">
<div class="row">
<div class="col">
<small><?php echo $reeft_text0247 ?></small>
</div>
</div>
<div class="row">
<div class="col mb-1">
<input id="input-logType" type="text" class="form-control">
</div>
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-3 col-sm-4 col-xs-4 mt-1">
<div class="row">
<div class="col">
<small><?php echo $reeft_text0249 ?></small>
</div>
</div>
<div class="row">
<div class="col mb-1">
<input id="input-logCode" type="text" class="form-control">
</div>
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-3 col-sm-4 col-xs-4 mt-1">
<div class="row">
<div class="col">
<small><?php echo $reeft_text0119 ?></small>
</div>
</div>
<div class="row">
<div class="col mb-1">
<input id="input-logPgm" type="text" class="form-control">
</div>
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-3 col-sm-4 col-xs-4 mt-1">
<div class="row">
<div class="col">
<small><?php echo $reeft_text0250 ?></small>
</div>
</div>
<div class="row">
<div class="col mb-1">
<input id="input-clientID" type="text" class="form-control">
</div>
</div>
</div>
</div>
</div>
<!-- Misc 1 search fields end -->
<!-- Misc 2 search fields start -->
<div id="misc-2-search-fields" class="d-none">
<div class="row mb-2">
<div class="col-xl-8 col-lg-8 col-md-12 col-sm-12 col-xs-12 mt-1">
<div class="row">
<div class="col">
<small><?php echo $reeft_text0120 ?></small>
</div>
</div>
<div class="row">
<div class="col mb-1">
<input id="input-dataLine" type="text" class="form-control">
</div>
</div>
</div>
</div>
</div>
<!-- Misc 1 search fields end -->
<div class="row mt-2">
<div class="col-12">
<div id="data-result" style="width: 100%;"></div>
<table id="REEFTvisual_data" class="table table-bordered table-striped table-hover table-fixed">
<thead>
<tr class="bg-primary text-white font-weight-bold text-center">
<th class="text-left" title="pk_customer"> <?php echo $reeft_text0252 ?> </th>
<th class="text-left" title="cust_active"> <?php echo $reeft_text0253 ?> </th>
<th class="text-left" title="cust_number"> <?php echo $reeft_text0254 ?> </th>
<th class="text-left" title="cust_name"> <?php echo $reeft_text0255 ?> </th>
<th class="text-left" title="cust_group"> <?php echo $reeft_text0256 ?> </th>
<th class="text-left" title="product"> <?php echo $reeft_text0251 ?> </th>
<th class="text-left" title="description"> <?php echo $reeft_text0245 ?> </th>
<th class="text-left" title="integration_version"> <?php echo $reeft_text0243 ?> </th>
<th class="text-left" title="fileformat_ext_file"> <?php echo $reeft_text0244 ?> </th>
<th class="text-left" title="fileformat_exportterminationfile"> <?php echo $reeft_text0242 ?> </th>
<th class="text-left" title="fileformat_numberdecimalseparator"> <?php echo $reeft_text0241 ?> </th>
<th class="text-left" title="fileformat_separator"> <?php echo $reeft_text0240 ?> </th>
<th class="text-left" title="fileformat_codepage"> <?php echo $reeft_text0239 ?> </th>
<th class="text-left" title="program_dir"> <?php echo $reeft_text0238 ?> </th>
<th class="text-left" title="input_dir"> <?php echo $reeft_text0237 ?> </th>
<th class="text-left" title="output_dir"> <?php echo $reeft_text0236 ?> </th>
<th class="text-left" title="error_dir"> <?php echo $reeft_text0235 ?> </th>
<th class="text-left" title="done_dir"> <?php echo $reeft_text0234 ?> </th>
<th class="text-left" title="log_dir"> <?php echo $reeft_text0233 ?> </th>
<th class="text-left" title="export_done_dir"> <?php echo $reeft_text0204 ?> </th>
<th class="text-left" title="import_functions"> <?php echo $reeft_text0232 ?> </th>
<th class="text-left" title="export_functions"> <?php echo $reeft_text0231 ?> </th>
<th class="text-left" title="client_id"> <?php echo $reeft_text0250 ?> </th>
<th class="text-left" title="client_secret"> <?php echo $reeft_text0230 ?> </th>
<th class="text-left" title="organizationId"> <?php echo $reeft_text0229 ?> </th>
<th class="text-left" title="create_user"> <?php echo $reeft_text0228 ?> </th>
<th class="text-left" title="create_timestamp"> <?php echo $reeft_text0227 ?> </th>
<th class="text-left" title="update_user"> <?php echo $reeft_text0226 ?> </th>
<th class="text-left" title="update_timestamp"> <?php echo $reeft_text0225 ?> </th>
<th class="text-left" title="company_logo_url"> <?php echo $reeft_text0224 ?> </th>
<th class="text-left" title="number_of_exports"> <?php echo $reeft_text0223 ?> </th>
<th class="text-left" title="number_of_imports"> <?php echo $reeft_text0222 ?> </th>
<th class="text-left" title="ERPname"> <?php echo $reeft_text0221 ?> </th>
<th class="text-left" title="ERPdescription"> <?php echo $reeft_text0220 ?> </th>
<th class="text-left" title="ERPurl"> <?php echo $reeft_text0219 ?> </th>
<th class="text-left" title="json_default_path"> <?php echo $reeft_text0218 ?> </th>
<th class="text-left" title="json_gps_default_path"> <?php echo $reeft_text0217 ?> </th>
<th class="text-left" title="name"> <?php echo $reeft_text0255 ?> </th>
<th class="text-left" title="group"> <?php echo $reeft_text0256 ?> </th>
<th class="text-left"><button type="button" id="add-button" title="Shortcut: Alt+F6" onclick="dataAdd('0')" class="d-none btn btn-dark btn-block font-weight-bold"><?php echo $reeft_button_save_01 ?></button></th>
<th class="text-left"></th>
</tr>
</thead>
</table>
</div>
</div>
<div class="row">
<div class="col text-left mb-2">
<small><div id="load-time-from-database"></div></small>
</div>
</div>
</div>
</div>
</div>
<!-- Set footer -->
<?php
include "include/footer.php";
?>
<!-- Set footer -->
<!-- ========================================================================== -->
<!-- M O D A L S -->
<!-- ========================================================================== -->
<!-- Modal -->
<div class="modal fade" id="customer_maintainModal" tabindex="-1" data-keyboard="false" data-backdrop="static" role="dialog" aria-labelledby="customer_maintainModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xxl">
<div class="modal-content">
<div class="modal-header bg-primary text-white">
<div class="container-fluid pl-0 pr-0">
<div class="row">
<div class="col-3">
<h5 class="modal-title" id="customer_maintainModalLabel"><i class="font-awesome-pseudo-class fa-thin fa-people"></i> <?php echo $reeft_text0138 ?></h5>
</div>
<div class="col-6 text-center">
<div id="modal-data-not-saved-warning-wrapper" class="border border-danger border-3 rounded d-none">
<div class="h6 font-weight-bold" id="modal-data-not-saved-warning"><?php echo $reeft_text0190 ?></div>
<div class="h6 font-weight-bold d-none" id="modal-data-not-saved-warning1"><?php echo $reeft_text0191 ?></div>
</div>
</div>
<div class="col-3 text-right">
<span id="modal-tinyfilemanager-button"></span>
<button type="button" title="Shortcut key: Alt+F2" id="button-show-hide-field-names" style="width:150px" class="btn btn-dark btn-sm" onclick="showFieldNames()"><?php echo $reeft_text0216 ?></button>
<button type="button" title="Shortcut key: Alt+F3" id="button-show-dir-work-place" style="width:150px" class="btn btn-dark btn-sm" onclick="showDirWorkPlace()"><?php echo $reeft_text0208 ?></button>
<button type="button" class="close d-none" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-12 text-right">
<div id="text-show-hide-field-names" style="font-size:0.8em" class="font-weight-bold d-none">DB /table: REEFT_integration.sqlite3 => reeft_customer</div>
</div>
</div>
</div>
<div id="main-modal-body" class="modal-body ml-2 mr-2 overflow-class-modal-body">
<input type="text" class="d-none" id="input-current-color-picker">
<input type="text" class="d-none" id="input-current-text-color">
<input type="text" class="d-none" id="input-current-background-color">
<!-- Message if screen is not wide enough -->
<div class="container-fluid mt-2 mb-4 d-block d-lg-none">
<div id="general-message-top" class="border border-danger rounded p-2 text-danger font-weight-boldx"><?php echo $reeft_error0040a ?></div>
</div>
<!-- Message if screen is not wide enough -->
<form name="dataForm" id="dataForm">
<!-- Hidden fields start -->
<div class="d-none">
</div>
<!-- Hidden fields end -->
<!-- ============================================================================================================================== -->
<!-- Work with input fields - start -->
<!-- ============================================================================================================================== -->
<div id="main-modal-input-fields">
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0254 ?>
<div class="show-field-names-class d-none font-weight-bold">cust_number </div>
</div>
<div class="col-2">
<input class="form-control read-only-class check-for-input-change-class check-input-in-modal" onkeyup="resetModalMessage()" type="text" id="modal-input-cust_number" name="modal-input-cust_number">
</div>
<div class="col-2">
<button type="button" class="btn btn-primary" onclick="createDefaultDirPath()">Create Dirs</button>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0255?>
<div class="show-field-names-class d-none font-weight-bold">cust_name</div>
</div>
<div class="col-4">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-cust_name" name="modal-input-cust_name">
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0256 ?>
<div class="show-field-names-class d-none font-weight-bold">cust_group</div>
</div>
<div class="col-1">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="number" min="1" id="modal-input-cust_group" name="modal-input-cust_group">
</div>
<div class="col-8">
<div id="data-result-button-group-modal"></div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0253a ?>
<div class="show-field-names-class d-none font-weight-bold">cust_active</div>
</div>
<div class="col-1">
<input class="form-control read-only-class check-for-input-change-class" type="text" id="modal-input-cust_active" name="modal-input-cust_active">
</div>
<div class="col-2">
<div id="data-result-button-active-inactive"></div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0244 ?>
<div class="show-field-names-class d-none font-weight-bold">fileformat_ext_file</div>
</div>
<div class="col-2">
<input class="form-control read-only-class check-for-input-change-class" type="text" id="modal-input-fileformat_ext_file" name="modal-input-fileformat_ext_file">
</div>
<div class="col-7">
<div id="data-result-button-extension-modal"></div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0242a ?>
<div class="show-field-names-class d-none font-weight-bold">fileformat_exportterminationfile</div>
</div>
<div class="col-2">
<input class="form-control read-only-class check-for-input-change-class" type="text" id="modal-input-fileformat_exportterminationfile" name="modal-input-fileformat_exportterminationfile">
</div>
<div class="col-7">
<div id="data-result-button-fileformat_exportterminationfile-modal"></div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0241 ?>
<div class="show-field-names-class d-none font-weight-bold">fileformat_numberdecimalseparator</div>
</div>
<div class="col-3">
<?php echo $reeft_text0240 ?>
<div class="show-field-names-class d-none font-weight-bold">fileformat_separator</div>
</div>
<div class="col-3">
<?php echo $reeft_text0239 ?>
<div class="show-field-names-class d-none font-weight-bold">fileformat_codepage</div>
</div>
</div>
<div class="row mt-1">
<div class="col-1">
<input class="form-control read-only-class text-center check-for-input-change-class" type="text" id="modal-input-fileformat_numberdecimalseparator" style="font-size:2em;height:1.2em" name="modal-input-fileformat_numberdecimalseparator">
</div>
<div class="col-2">
<div id="data-result-button-fileformat_numberdecimalseparator-modal"></div>
</div>
<div class="col-1">
<input class="form-control read-only-class text-center check-for-input-change-class" type="text" id="modal-input-fileformat_separator" style="font-size:1.8em;height:1.4em" name="modal-input-fileformat_separator">
</div>
<div class="col-2">
<div id="data-result-button-fileformat_separator-modal"></div>
</div>
<div class="col-2">
<input class="form-control read-only-class check-for-input-change-class" type="text" id="modal-input-fileformat_codepage" name="modal-input-fileformat_codepage">
</div>
<div class="col">
<div id="data-result-button-code-page-modal"></div>
</div>
</div>
<div class="row mt-2">
<div class="col-4">
<?php echo $reeft_text0237 ?>
<div class="show-field-names-class d-none font-weight-bold">input_dir</div>
</div>
<div class="col-4">
<?php echo $reeft_text0236 ?>
<div class="show-field-names-class d-none font-weight-bold">output_dir</div>
</div>
<div class="col-4">
<?php echo $reeft_text0234 ?>
<div class="show-field-names-class d-none font-weight-bold">done_dir</div>
</div>
</div>
<div class="row mt-1">
<div class="col-4">
<input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-input_dir" name="modal-input-input_dir">
<input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-input_dir_org">
</div>
<div class="col-4">
<input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-output_dir" name="modal-input-output_dir">
<input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-output_dir_org">
</div>
<div class="col-4">
<input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-done_dir" name="modal-input-done_dir">
<input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-done_dir_org">
</div>
</div>
<div class="row mt-2">
<div class="col-4">
<?php echo $reeft_text0235 ?>
<div class="show-field-names-class d-none font-weight-bold">error_dir</div>
</div>
<div class="col-4">
<?php echo $reeft_text0233 ?>
<div class="show-field-names-class d-none font-weight-bold">log_dir</div>
</div>
<div class="col-4">
<?php echo $reeft_text0238 ?>
<div class="show-field-names-class d-none font-weight-bold">program_dir</div>
</div>
</div>
<div class="row mt-1">
<div class="col-4">
<input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-error_dir" name="modal-input-error_dir">
<input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-error_dir_org">
</div>
<div class="col-4">
<input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-log_dir" name="modal-input-log_dir">
<input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-log_dir_org">
</div>
<div class="col-4">
<input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-program_dir" name="modal-input-program_dir">
<input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-program_dir_org">
</div>
</div>
<div class="row mt-2">
<div class="col-4">
<?php echo $reeft_text0204 ?>
<div class="show-field-names-class d-none font-weight-bold">export_done_dir</div>
</div>
<div class="col-4">
</div>
<div class="col-4">
</div>
</div>
<div class="row mt-1">
<div class="col-4">
<input class="form-control read-only-class read-only-dir-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-export_done_dir" name="modal-input-export_done_dir">
<input class="form-control read-only-class hide-me-class d-none" type="text" id="modal-input-export_done_dir_org">
</div>
<div class="col-4">
</div>
<div class="col-4">
</div>
</div>
<div class="row mt-2">
<div class="col-4">
<?php echo $reeft_text0230 ?>
<div class="show-field-names-class d-none font-weight-bold">client_secret</div>
</div>
<div class="col-4">
<?php echo $reeft_text0250 ?>
<div class="show-field-names-class d-none font-weight-bold">client_id</div>
</div>
<div class="col-4">
<?php echo $reeft_text0229 ?>
<div class="show-field-names-class d-none font-weight-bold">organizationId</div>
</div>
</div>
<div class="row mt-2">
<div class="col-4">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-client_secret" name="modal-input-client_secret">
</div>
<div class="col-4">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-client_id" name="modal-input-client_id">
</div>
<div class="col-4">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-organizationId" name="modal-input-organizationId">
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0224 ?>
<div class="show-field-names-class d-none font-weight-bold">company_logo_url</div>
</div>
<div class="col-3">
<?php echo $reeft_text0221 ?>
<div class="show-field-names-class d-none font-weight-bold">ERPname</div>
</div>
<div class="col-3">
<?php echo $reeft_text0220 ?>
<div class="show-field-names-class d-none font-weight-bold">ERPdescription</div>
</div>
<div class="col-3">
<?php echo $reeft_text0219 ?>
<div class="show-field-names-class d-none font-weight-bold">ERPurl</div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-company_logo_url" name="modal-input-company_logo_url">
</div>
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-ERPname" name="modal-input-ERPname">
</div>
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-ERPdescription" name="modal-input-ERPdescription">
</div>
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-ERPurl" name="modal-input-ERPurl">
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0218 ?>
<div class="show-field-names-class d-none font-weight-bold">json_gps_default_path</div>
</div>
<div class="col-3">
<?php echo $reeft_text0217 ?>
<div class="show-field-names-class d-none font-weight-bold">json_default_path</div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-json_gps_default_path" name="modal-input-json_gps_default_path">
</div>
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-json_default_path" name="modal-input-json_default_path">
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0232 ?>
<div class="show-field-names-class d-none font-weight-bold">import_functions</div>
</div>
<div class="col-3">
<?php echo $reeft_text0231 ?>
<div class="show-field-names-class d-none font-weight-bold">export_functions</div>
</div>
<div class="col-3">
<?php echo $reeft_text0252 ?>
<div class="show-field-names-class d-none font-weight-bold">pk_customer</div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-import_functions" name="modal-input-import_functions">
</div>
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-export_functions" name="modal-input-export_functions">
</div>
<div class="col-1">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-pk_customer" name="modal-input-pk_customer">
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0251 ?> / <?php echo $reeft_text0245 ?> / <?php echo $reeft_text0243 ?>
<div class="show-field-names-class d-none font-weight-bold">product / description / integration_version</div>
</div>
<div class="col-2">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-product" name="modal-input-product">
</div>
<div class="col-4">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-description" name="modal-input-description">
</div>
<div class="col-2">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-integration_version" name="modal-input-integration_version">
</div>
</div>
<div id="dash-board-figures" class="d-none">
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0222 ?>
<div class="show-field-names-class d-none font-weight-bold">number_of_imports</div>
</div>
<div class="col-3">
<?php echo $reeft_text0223 ?>
<div class="show-field-names-class d-none font-weight-bold">number_of_exports</div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-number_of_imports" name="modal-input-number_of_imports">
</div>
<div class="col-3">
<input class="form-control read-only-class check-for-input-change-class" onkeyup="resetModalMessage()" type="text" id="modal-input-number_of_exports" name="modal-input-number_of_exports">
</div>
</div>
</div>
<hr>
<div class="row mt-2">
<div class="col-3">
<?php echo $reeft_text0228 ?>
<div class="show-field-names-class d-none font-weight-bold">create_user</div>
</div>
<div class="col-3">
<?php echo $reeft_text0227 ?>
<div class="show-field-names-class d-none font-weight-bold">create_timestamp</div>
</div>
<div class="col-3">
<?php echo $reeft_text0226 ?>
<div class="show-field-names-class d-none font-weight-bold">update_user</div>
</div>
<div class="col-3">
<?php echo $reeft_text0225 ?>
<div class="show-field-names-class d-none font-weight-bold">update_timestamp</div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<input class="form-control read-only-class" type="text" id="modal-input-create_user" name="modal-input-create_user">
</div>
<div class="col-3">
<input class="form-control read-only-class" type="text" id="modal-input-create_timestamp" name="modal-input-create_timestamp">
</div>
<div class="col-3">
<input class="form-control read-only-class" type="text" id="modal-input-update_user" name="modal-input-update_user">
</div>
<div class="col-3">
<input class="form-control read-only-class" type="text" id="modal-input-update_timestamp" name="modal-input-update_timestamp">
</div>
</div>
</div>
<!-- ============================================================================================================================== -->
<!-- Work with input fields - end -->
<!-- ============================================================================================================================== -->
<!-- ============================================================================================================================== -->
<!-- Work with dirs - start -->
<!-- ============================================================================================================================== -->
<div id="main-modal-dir-work-place" style="height:600px">
<div class="row mb-1">
<div class="col">
<div class="h5 font-weight-bold" id="main-modal-dir-work-place-customer-information"></div>
</div>
<div class="col text-right">
<div class="h5 font-weight-bold" id="main-modal-dir-work-place-logo-information"></div>
</div>
</div>
<table id="REEFT-table-work-dirs" class="table table-bordered table-hover">
<thead>
<tr class="bg-primary text-white">
<th>
</th>
<th>
<?php echo $reeft_text0193 ?>
</th>
<th class="text-center">
<?php echo $reeft_text0194 ?>
</th>
<th class="text-center d-none">
<?php echo $reeft_text0195 ?>
</th>
<th class="text-center">
<button type="button" id="workdir-button-create-all-dirs" class="btn btn-dark" onclick="createDirsAll()"><?php echo $reeft_button_create_all ?></button>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<?php echo $reeft_text0237 ?>
<div class="show-field-names-class d-none font-weight-bold">input_dir</div>
</td>
<td>
<div class="font-weight-bold" type="text" id="workdir-modal-input-input_dir" name="workdir-modal-input-input_dir"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-input_dir-exists"></div>
</td>
<td class="text-center d-none">
<div id="workdir-modal-input-input_dir-view"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-input_dir-create-dir">1</div>
</td>
</tr>
<tr>
<td>
<?php echo $reeft_text0236 ?>
<div class="show-field-names-class d-none font-weight-bold">output_dir</div>
</td>
<td>
<div class="font-weight-bold" type="text" id="workdir-modal-input-output_dir" name="workdir-modal-input-output_dir"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-output_dir-exists"></div>
</td>
<td class="text-center d-none">
<div id="workdir-modal-input-output_dir-view"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-output_dir-create-dir">2</div>
</td>
</tr>
<tr>
<td>
<?php echo $reeft_text0234 ?>
<div class="show-field-names-class d-none font-weight-bold">done_dir</div>
</td>
<td>
<div class="font-weight-bold" type="text" id="workdir-modal-input-done_dir" name="workdir-modal-input-done_dir"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-done_dir-exists"></div>
</td>
<td class="text-center d-none">
<div id="workdir-modal-input-done_dir-view"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-done_dir-create-dir">3</div>
</td>
</tr>
<tr>
<td>
<?php echo $reeft_text0235 ?>
<div class="show-field-names-class d-none font-weight-bold">error_dir</div>
</td>
<td>
<div class="font-weight-bold" type="text" id="workdir-modal-input-error_dir" name="workdir-modal-input-error_dir"></div>
</td>
<th class="text-center">
<div id="workdir-modal-input-error_dir-exists"></div>
</td>
<th class="text-center d-none">
<div id="workdir-modal-input-error_dir-view"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-error_dir-create-dir"></div>
</td>
</tr>
<tr>
<td>
<?php echo $reeft_text0233 ?>
<div class="show-field-names-class d-none font-weight-bold">log_dir</div>
</td>
<td>
<div class="font-weight-bold" type="text" id="workdir-modal-input-log_dir" name="workdir-modal-input-log_dir"></div>
</td>
<th class="text-center">
<div id="workdir-modal-input-log_dir-exists"></div>
</td>
<th class="text-center d-none">
<div id="workdir-modal-input-log_dir-view"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-log_dir-create-dir"></div>
</td>
</tr>
<tr>
<td>
<?php echo $reeft_text0204 ?>
<div class="show-field-names-class d-none font-weight-bold">export_done_dir</div>
</td>
<td>
<div class="font-weight-bold" type="text" id="workdir-modal-input-export_done_dir" name="workdir-modal-input-export_done_dir"></div>
</td>
<th class="text-center">
<div id="workdir-modal-input-export_done_dir-exists"></div>
</td>
<th class="text-center d-none">
<div id="workdir-modal-input-export_done_dir-view"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-export_done_dir-create-dir"></div>
</td>
</tr>
<tr>
<td>
<?php echo $reeft_text0238 ?>
<div class="show-field-names-class d-none font-weight-bold">program_dir</div>
</td>
<td>
<div class="font-weight-bold" type="text" id="workdir-modal-input-program_dir" name="workdir-modal-input-program_dir"></div>
</td>
<th class="text-center">
<div id="workdir-modal-input-program_dir-exists"></div>
</td>
<th class="text-center d-none">
<div id="workdir-modal-input-program_dir-view"></div>
</td>
<td class="text-center">
<div id="workdir-modal-input-program_dir-create-dir"></div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- ============================================================================================================================== -->
<!-- Work with dirs - end -->
<!-- ============================================================================================================================== -->
</form>
</div>
<div class="modal-footer-pretty modal-footer">
<div class="container-fluid">
<div class="row">
<div class="col-12 text-left">
<div class="p-1 font-weight-bold text-danger border-top border-dark " id="modal-message"> </div>
</div>
</div>
<div class="row mt-1 mb-2">
<div class="col-3 text-left">
<button type="button" class="btn btn-primary btn-block" id="modal-save-button" onclick="dataSave('*SAVE_AND_CLOSE')"><?php echo $reeft_button_save ?></button>
</div>
<div class="col-3 text-left">
<button type="button" class="d-none btn btn-primary btn-block" id="modal-save-button-only" onclick="dataSave('*SAVE_ONLY')"><?php echo $reeft_button_save ?></button>
</div>
<div class="col-3 text-center">
</div>
<div class="col-3 text-right">
<button type="button" class="btn btn-primary btn-block" id="buttton-close-modal" onclick="closeModal('customer_maintainModal')"><?php echo $reeft_button_cancel_01 ?></button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- ************************************************ -->
<!-- Confirm delete -->
<!-- ************************************************ -->
<div class="modal fade" id="customer_confirmDeleteModal" tabindex="-1" role="dialog" aria-labelledby="mainLog_confirmDeleteModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl" role="document">
<div class="modal-content">
<div class="modal-header bg-primary text-white">
<h5 class="modal-title" id="mainLog_confirmDeleteModalLabel"><?php echo $reeft_text0063 ?></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form name="dataForm-delete" id="dataForm-delete">
<input type="text" class="d-none" id="confirm-delete-cust_number" name="confirm-delete-cust_number">
</form>
<div class="h6"><?php echo $reeft_text0062 ?>: <span class="font-weight-bold" id="confirm-delete-text-cust_number"></span></div>
<div class="row">
<div class="col-12 text-left">
<div class="p-1 font-weight-bold text-danger border-top border-dark d-none" id="confirm-delete-modal-message"> </div>
</div>
</div>
</div>
<div class="modal-footer">
<div class="container-fluid">
<div class="row mt-1 mb-2">
<div class="col-3 text-left">
<button type="button" onclick="dataDeleteExec()" class="btn btn-primary"><?php echo $reeft_button_delete ?></button>
</div>
<div class="col-6 text-center">
</div>
<div class="col-3 text-right">
<button type="button" class="btn btn-primary" data-dismiss="modal"><?php echo $reeft_button_cancel_01 ?></button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>